Extract用DDLERROR
Extract用のDDLERRORパラメータ・オプションでは、Extractによって認識される、メタデータが検出不可能なオブジェクトに関するエラーを処理します。
構文
DDLERROR [RESTARTSKIP number_of_skips] [RETRYDELAY seconds] [SKIPTRIGGERERROR number_of_errors]
RESTARTSKIP number_of_skipsExtractの起動時に、特定の数の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を指定します。
responseDDLエラーが発生したときに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は、他のオブジェクト名を含むエラー操作を無視します。