处理 DML 操作期间的复制错误
要控制 Replicat 在其某个 DML 语句中响应错误的方式,请使用 Replicat 参数文件中的 REPERROR 参数。可以使用 REPERROR 作为全局参数或 MAP 语句的一部分。您可以使用 DEFAULT 和 DEFAULT2 选项以默认方式(例如停止处理)处理大多数错误,还可以以特定方式处理其他错误。
下面是 REPERROR 响应的范围:
-
ABEND:回退事务处理并停止处理。 -
DISCARD:将错误记录到放弃文件中并继续处理。 -
EXCEPTION:发送异常处理的错误。 -
IGNORE:忽略该错误并继续处理。 -
RETRYOP [MAXRETRIESn]:重试操作(可选),最多可重试特定次数。 -
TRANSABORT [, MAXRETRIESn] [, DELAY[C]SECSn]:中止事务处理并重新定位到开头(可选),最多可按特定间隔指定特定次数。 -
RESET:删除所有以前的REPERROR规则并恢复ABEND的默认值。 -
TRANSDISCARD:如果该事务处理中的任何操作(包括提交)导致错误规范中列出的复制错误,则放弃整个复制的源事务处理。在目标上禁用完整性约束条件检查时,此选项很有用。 -
TRANSEXCEPTION:根据复制的源事务处理的异常映射语句,为复制的源事务处理中的每个记录执行异常映射,前提是该事务处理中的任何操作(包括提交)导致错误规范中列出的复制错误。
大多数选项对生成错误的单个记录进行操作,Replicat 会处理事务处理中其他成功的操作。例外为 TRANSDISCARD 和 TRANSEXCEPTION:如果事务处理中的任何记录生成错误,这些选项会影响事务处理中的所有记录。(ABEND 选项也适用于整个事务处理,但不应用错误处理。)
有关语法和用法,请参见 REPERROR 。