Extract用DDLERROR
Extract用のDDLERROR
パラメータ・オプションでは、Extractによって認識される、メタデータが検出不可能なオブジェクトに関するエラーを処理します。
構文
DDLERROR [RESTARTSKIP number_of_skips] [RETRYDELAY seconds] [SKIPTRIGGERERROR number_of_errors]
RESTARTSKIP
number_of_skips
Extractの起動時に、特定の数のDDL操作をスキップおよび無視させ、エラーによるExtractの異常終了を防ぎます。デフォルトでは、DDLエラーが発生するとExtractは異常終了するため、操作はスキップされません。有効な値は1から100,000です。
スキップした操作をExtractレポート・ファイルに書き込むには、DDLOPTIONS
パラメータとREPORT
オプションを使用します。
RETRYDELAY
失敗した操作を再試行するまでの遅延を指定します。デフォルトは60秒です。
SKIPTRIGGERERROR
number_of_errors
(Oracle)Extractの起動時に、DDLトリガーが原因で発生する特定の数のDDLエラーをスキップおよび無視させます。有効な値は1から100,000です。
SKIPTRIGGERERROR
は、RESTARTSKIP
オプションの前にチェックされます。Extractがトリガー・エラーのためにDDL操作をスキップする場合、その操作はRESTARTSKIP
指定の対象としてカウントされません。
Replicat用DDLERROR
Replicat用のDDLERROR
パラメータ・オプションでは、DDLがターゲット・データベースに適用されるときに発生するエラーを処理します。DDLERROR
オプションを使用して、ほとんどのエラーをデフォルトの方法(処理の停止など)で処理し、他のエラーを特定の方法で処理できます。予見されるすべてのエラーが処理されるよう、同一のパラメータ・ファイルに複数のDDLERROR
インスタンスを使用できます。
構文
DDLERROR {error | DEFAULT} {response} {INCLUDE inclusion_clause | EXCLUDE exclusion_clause} [IGNOREMISSINGOBJECTS | ABENDONMISSINGOBJECTS] [RETRYDELAY seconds]
{
error
| DEFAULT} {
response}
error
このDDLERROR
文で処理する明示的なDDLエラーを指定します。
DEFAULT
明示的なDDLERROR文がないすべてのDDLエラーについてデフォルトの
responseを指定します。
response
DDLエラーが発生したときにReplicatが実行するアクション。次のいずれかを指定できます。
ABEND
操作をロールバックし、処理を異常終了します。ABEND
はデフォルトです。
DISCARD
問題のある操作を破棄ファイルに記録しますが、後続のDDLの処理を継続します。
IGNORE
エラーを無視します。
{INCLUDE
inclusion_clause
| EXCLUDE
exclusion_clause
}
特定のDDLがDDLERROR
文によって処理されるかどうかを制御する包含または除外句の始まりを識別します。構文および使用方法は、「DDLのフィルタリング・オプション」を参照してください。
[IGNOREMISSINGOBJECTS | ABENDONMISSINGOBJECTS]
ターゲット上に見つからなかったオブジェクトでDMLが発行された場合、Extractが異常終了するかどうかを制御します。通常この条件が発生するのは、レプリケーション構成に含まれないDDLがターゲットで直接発行されるときです。または、ソース定義とターゲット定義の間に矛盾がある場合にも発生します。
IGNOREMISSINGOBJECTS
見つからない表でのDML操作をReplicatがスキップするようにします。
ABENDONMISSINGOBJECTS
見つからない表でのDML操作でReplicatが異常終了するようにします。
[RETRYDELAY
seconds
]
失敗した操作を再試行するまでの遅延(秒単位)を指定します。デフォルトは60秒です。
例
次の例では、DDLERROR
文に基づき、Replicatは指定されたエラーを無視しますが、その前に、該当の操作を10秒間隔で3回試行します。Replicatは、ワイルドカード指定tab1*
を満たすオブジェクト上で実行される操作を除き、tab*
(任意のユーザー、任意の操作)を満たす名前のオブジェクトで実行されるDDL操作にエラー処理を適用します。
DDLERROR 1234 IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 10 & INCLUDE ALL OBJTYPE TABLE OBJNAME tab* EXCLUDE OBJNAME tab1*
このエラーを除くすべてのエラーを処理するために、次のDDLERROR
文を追加できます。
DDLERROR DEFAULT ABEND
この場合、ReplicatはDDLエラー発生時に異常終了します。
パラメータ・ファイルにDDLERROR
文をリストする順番は、各文の有効性に影響しませんが、複数のDDLERROR
文に、追加の修飾子なしで同一のエラーが指定されている場合は例外です。このようなケースでは、Replicatは最初にリストされている文のみを使用します。たとえば、次のような文では、エラーが発生するとReplicatは異常終了します。
DDLERROR 1234 ABEND DDLERROR 5678 IGNORE
ただし、適切な修飾子を指定すれば、前述の構成を有効に使用できます。例:
DDLERROR 1234 ABEND INCLUDE OBJNAME tab* DDLERROR 5678 IGNORE
このケースでは、INCLUDE
文が追加されているため、Replicatは、エラーのDDL文のオブジェクト名がワイルドカードtab*
に一致する場合にのみ異常終了します。Replicatは、他のオブジェクト名を含むエラー操作を無視します。