DML操作中のReplicatエラーの処理
いずれかのDML文の処理中に発生したエラーに対するReplicatのレスポンス方法を制御するには、Replicatのパラメータ・ファイルでREPERROR
パラメータを使用します。REPERROR
は、グローバル・パラメータとして、またはMAP
文の一部として使用できます。ほとんどのエラーはDEFAULT
オプションおよびDEFAULT2
オプションを使用してデフォルトの方法(処理の中止など)で処理し、他のエラーは特定の方法で処理できます。
REPERROR
による各種レスポンスは次のオプションで構成されます。
-
ABEND
: トランザクションをロールバックして処理を停止します。 -
DISCARD
: 破棄ファイルにエラーを記録して処理を継続します。 -
EXCEPTION
: 例外処理のためにエラーを送信します。 -
IGNORE
: エラーを無視して処理を継続します。 -
RETRYOP [MAXRETRIES
n
]
: 操作を再試行します(オプションで最大試行回数を指定できます)。 -
TRANSABORT [, MAXRETRIES
n
] [, DELAY[C]SECS
n
]
: トランザクションを中断して最初の配置に戻します(オプションで最大試行回数とその間隔を指定できます)。 -
RESET
: 以前のすべてのREPERROR
ルールを削除し、デフォルトのABEND
に戻します。 -
TRANSDISCARD
: レプリケートされたソース・トランザクション内の操作(コミットなど)が、エラー指定にリストされているReplicatエラーの原因となっている場合に、そのトランザクション全体を破棄します。このオプションは、ターゲットで整合性制約チェックが無効になっている場合に便利です。 -
TRANSEXCEPTION
: レプリケートされたソース・トランザクション内の操作(コミットなど)が、エラー指定にリストされているReplicatエラーの原因となっている場合に、そのトランザクションのすべてのレコードに対し、例外マッピング文に従って例外マッピングを実行します。
ほとんどのオプションは、エラーを生成した個々のレコードに対して機能し、Replicatは、トランザクション内で成功した他の操作を処理します。ただし、TRANSDISCARD
とTRANSEXCEPTION
は例外で、これらのオプションは、トランザクション内のいずれかのレコードがエラーを生成した場合に、そのトランザクション内のすべてのレコードに影響します。(ABEND
オプションもトランザクション全体を対象としていますが、エラー処理は適用しません。)
構文と使用方法は、REPERROR
を参照してください。