DDLERROR

Gültig für

Extract und Replicat

Beschreibung

Verwenden Sie den Parameter DDLERROR, um DDL-Fehler in Quell- und Zielsystemen zu behandeln. Optionen sind für Extract und Replicat verfügbar.

DDLERROR für Extraktion

Verwenden Sie die Extract-Option des Parameters DDLERROR, um Fehler bei Objekten zu behandeln, die in Extract gefunden wurden und für die keine Metadaten gefunden werden können.

Standard

Abbrechen

Syntax

DDLERROR [RESTARTSKIP <number_of_skips>] [RETRYDELAY <seconds>] [SKIPTRIGGERERROR <number_of_errors>]

RESTARTSKIP <number_of_skips>

Führt dazu, daß Extract eine bestimmte Anzahl von DDL-Vorgängen beim Hochfahren überspringt und ignoriert, um zu verhindern, daß Extract einen Fehler beendet. Standardmäßig führt ein DDL-Fehler dazu, dass Extract abgebrochen wird, sodass keine Vorgänge übersprungen werden. Gültige Werte: 1 bis 100000.

Um Informationen über übersprungene Vorgänge in die Extract-Berichtsdatei zu schreiben, verwenden Sie den Parameter DDLOPTIONS mit der Option REPORT.

SKIPTRIGGERERROR <number_of_errors>

(Oracle) Führt dazu, dass Extract eine bestimmte Anzahl von DDL-Fehlern überspringt und ignoriert, die vom DDL-Trigger beim Hochfahren verursacht werden. Gültige Werte sind 1 bis 100000.

SKIPTRIGGERERROR wird vor der Option RESTARTSKIP geprüft. Wenn Extract einen DDL-Vorgang aufgrund eines Triggerfehlers überspringt, wird dieser Vorgang nicht zur RESTARTSKIP-Spezifikation gezählt.

DDLERROR für Replicat

Verwenden Sie die Replicat-Optionen des Parameters DDLERROR, um Fehler zu behandeln, die auftreten, wenn DDL auf die Zieldatenbank angewendet wird. Mit den Optionen DDLERROR können Sie die meisten Fehler standardmäßig behandeln, z.B. um die Verarbeitung zu stoppen und andere Fehler auf eine bestimmte Weise zu behandeln. Sie können mehrere Instanzen von DDLERROR in derselben Parameterdatei verwenden, um alle erwarteten Fehler zu verarbeiten.

Standard

Abbrechen

Syntax

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

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

<error>

Gibt einen expliziten DDL-Fehler für diese DDLERROR-Anweisung an, die verarbeitet werden soll.

DEFAULT

Gibt den Standardwert <response> für alle DDL-Fehler an, für die keine explizite DDLERROR-Anweisung vorhanden ist.

<response>

Die von Replicat ausgeführte Aktion, wenn eine DDL <error> ausgeführt wird. Einer der folgenden Namen kann verwendet werden:

ABEND

Setzen Sie den Vorgang zurück, und beenden Sie die Verarbeitung anormal. ABEND ist der Standardwert.

DISCARD

Protokollieren Sie den fehlerhaften Vorgang in der Discard-Datei, aber fahren Sie mit der Verarbeitung der folgenden DDL fort.

IGNORE

Ignoriert den Fehler.

{INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>}

Gibt den Beginn einer Einschluss- oder Ausschlussklausel an, die steuert, ob bestimmte DDL von der DDLERROR-Anweisung verarbeitet oder nicht verarbeitet wird. Syntax und Verwendung finden Sie unter "DDL Filteroptionen".

[IGNOREMISSINGOBJECTS ABENDONMISSINGOBJECTS]

Steuert, ob Extract beendet wird, wenn DML für Objekte ausgegeben wird, die nicht auf dem Ziel gefunden werden konnten. Diese Bedingung tritt normalerweise auf, wenn DDL, das nicht in der Replikationskonfiguration enthalten ist, direkt auf dem Ziel abgesetzt wird oder wenn eine Abweichung zwischen der Quell- und der Zieldefinition vorliegt.

IGNOREMISSINGOBJECTS

Führt dazu, dass Replicat DML-Vorgänge für fehlende Tabellen überspringt.

ABENDONMISSINGOBJECTS

Führt dazu, dass Replicat die DML-Vorgänge für fehlende Tabellen beendet.

[RETRYDELAY <seconds>]

Gibt die Verzögerung in Sekunden zwischen Versuchen an, einen nicht erfolgreichen Vorgang erneut zu versuchen. Standardwert: 10 Sekunden.

Beispiele

Beispiel 1: DDLERROR - Allgemeines Beispiel

Im folgenden Beispiel führt die DDLERROR-Anweisung dazu, dass Replicat den angegebenen Fehler ignoriert, jedoch nicht, bevor der Vorgang dreimal in Intervallen von zehn Sekunden wiederholt wird. Replicat wendet die Fehlerbehandlung auf DDL-Vorgänge an, die für Objekte ausgeführt werden, deren Namen den Platzhalter tab* (jeder Benutzer, jeder Vorgang) erfüllen, mit Ausnahme derjenigen, die tab1* erfüllen.

DDLERROR 1234 IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 10 &
INCLUDE ALL OBJTYPE TABLE OBJNAME tab* EXCLUDE OBJNAME tab1*

Um alle Fehler außer diesem Fehler zu behandeln, kann die folgende DDLERROR-Anweisung hinzugefügt werden.

DDLERROR DEFAULT ABEND

In diesem Fall wird Replicat bei DDL-Fehlern abgebrochen.

Beispiel 2: Mehrere DDLERROR-Anweisungen verwenden

Die Reihenfolge, in der Sie DDLERROR-Anweisungen in der Parameterdatei auflisten, wirkt sich nur dann auf ihre Gültigkeit aus, wenn mehrere DDLERROR-Anweisungen denselben Fehler ohne zusätzliche Qualifier angeben. In diesem Fall verwendet Replicat nur das erste aufgelistete. Beispiel: Bei den folgenden Anweisungen wird Replicat den Fehler abbrechen.

DDLERROR 1234 ABEND
DDLERROR 5678 IGNORE

Mit den richtigen Qualifiern wird die vorherige Konfiguration jedoch nützlicher. Beispiel:

DDLERROR 1234 ABEND INCLUDE OBJNAME tab*
DDLERROR 5678 IGNORE

Da in diesem Fall eine INCLUDE-Anweisung vorhanden ist, wird Replicat nur abgebrochen, wenn ein Objektname in einer fehlerhaften DDL-Anweisung mit dem Platzhalter tab* übereinstimmt. Replicat ignoriert fehlerhafte Vorgänge, die einen anderen Objektnamen enthalten.