DDLERROR

有効な対象

ExtractおよびReplicat

摘要

DDLERRORパラメータでは、ソース・システムおよびターゲット・システムのDDLエラーを処理します。ExtractおよびReplicat用のオプションが用意されています。

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から100000です。

スキップした操作をExtractレポート・ファイルに書き込むには、DDLOPTIONSパラメータとREPORTオプションを使用します。

SKIPTRIGGERERROR <number_of_errors>

(Oracle)Extractで、起動時にDDLトリガーによって発生する特定の数のDDLエラーがスキップおよび無視されるようにします。有効な値は1から100000です。

SKIPTRIGGERERRORは、RESTARTSKIPオプションの前にチェックされます。Extractがトリガー・エラーのためにDDL操作をスキップする場合、その操作はRESTARTSKIP指定の対象としてはカウントされません。

Replicat用DDLERROR

DDLERRORパラメータのReplicatオプションを使用すると、DDLがターゲット・データベースに適用されるときに発生するエラーを処理できます。DDLERRORオプションを使用すると、ほとんどのエラーをデフォルトの方法(処理の停止など)で処理し、他のエラーを特定の方法で取り扱うことができます。予見されるすべてのエラーが処理されるよう、同一のパラメータ・ファイルに複数のDDLERRORインスタンスを使用できます。

デフォルト

異常終了

構文

DDLERROR
{<error> | DEFAULT} {<response>}
{INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>}
[IGNOREMISSINGOBJECTS | ABENDONMISSINGOBJECTS]
[RETRYDELAY <seconds>]

{<error> | DEFAULT} {<response>}

<error>

このDDLERROR文で処理する明示的なDDLエラーを指定します。

DEFAULT

明示的なDDL文がないすべてのDDLERRORエラーについてデフォルトの<response>を指定します。

<response>

DDL <error>が発生したときに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>]

失敗した操作を再試行するまでの遅延(秒単位)を指定します。デフォルトは10秒です。

例

例1 DDLERRORの基本的な例

次の例では、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エラーの発生時に異常終了します。

例2複数のDDLERROR文の使用

パラメータ・ファイルにDDLERROR文をリストする順番は、各文の有効性に影響しませんが、複数のDDLERROR文に、追加の修飾子なしで同一のエラーが指定されている場合は例外です。このようなケースでは、Replicatは最初にリストされている文のみを使用します。たとえば、次のような文では、エラーが発生するとReplicatは異常終了します。

DDLERROR 1234 ABEND
DDLERROR 5678 IGNORE

ただし、適切な修飾子を指定すれば、前述の構成を有効に使用できます。たとえば:

DDLERROR 1234 ABEND INCLUDE OBJNAME tab*
DDLERROR 5678 IGNORE

このケースでは、INCLUDE文が存在するため、Replicatは、エラーのDDL文のオブジェクト名がワイルドカードtab*に一致する場合にのみ異常終了します。Replicatは、他のオブジェクト名を含むエラー操作を無視します。