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は、トランザクション内で成功した他の操作を処理します。ただし、TRANSDISCARDTRANSEXCEPTIONは例外で、これらのオプションは、トランザクション内のいずれかのレコードがエラーを生成した場合に、そのトランザクション内のすべてのレコードに影響します。(ABENDオプションもトランザクション全体を対象としていますが、エラー処理は適用しません。)

構文と使用方法は、REPERRORを参照してください。