TRANSACTIONTIMEOUT

Gültig für

Replicat

Beschreibung

Verwenden Sie den Parameter TRANSACTIONTIMEOUT, um zu verhindern, dass eine nicht festgeschriebene Replicat-Zieltransaktion Sperren für Zieltabellen aufhält und Datenbankressourcen unnötig belegt. Sie können den Wert dieses Parameters ändern, sodass Replicat innerhalb vorhandener Anwendungstimeouts und anderer Datenbankanforderungen am Ziel arbeiten kann.

TRANSACTIONTIMEOUT begrenzt die Zeit, die Replicat eine Zieltransaktion offen hält, wenn der Datensatz für das Transaktionsende für die letzte Quelltransaktion in dieser Transaktion nicht eingegangen ist. Standardmäßig gruppiert Replicat mehrere Quelltransaktionen in einer Zieltransaktion, um die Performance zu verbessern. Es wird jedoch keine teilweise Quelltransaktion festgeschrieben und auf diesen letzten Datensatz unbegrenzt gewartet. Der Replicat-Parameter GROUPTRANSOPS steuert die Mindestgröße einer gruppierten Zieltransaktion. Der Bereich ist 1-604800.

Die folgenden Ereignisse können lange genug dauern, um TRANSACTIONTIMEOUT auszulösen:

Funktionsweise von TRANSACTIONTIMEOUT

Während des normalen Betriebs merkt sich Replicat die Position im Trail des Anfangs der ersten Quelltransaktion in der aktuellen Zieltransaktion, falls die Transaktion abgebrochen und wiederholt werden muss. Wenn TRANSACTIONTIMEOUT aktiviert ist, speichert Replicat auch die Position des ersten Datensatzes der aktuellen Quelltransaktion und verwendet diese Position als logisches Dateiende (EOF), wenn TRANSACTIONTIMEOUT ausgelöst wird.

Wenn sie ausgelöst wird, führt TRANSACTIONTIMEOUT folgende Aktionen aus:

  1. Die aktuelle Zieltransaktion wird abgebrochen

  2. Repositionierungen am Anfang der ersten Quelltransaktion in der abgebrochenen Zieltransaktion.

  3. Verarbeitet alle Traildatensätze bis zur logischen End-of-File-Position (dem Anfang der letzten, unvollständigen Quelltransaktion).

  4. Schreibt die Transaktion am logischen EOF-Punkt fest.

  5. Wartet auf neue Traildaten, bevor weitere Traildatensätze verarbeitet werden.

TRANSACTIONTIMEOUT kann je nach Art des Problems, das dazu führt, dass die Traildaten langsam genug ankommen, um TRANSACTIONTIMEOUT auszulösen, mehrmals für dieselbe Quelltransaktion ausgelöst werden.

TRANSACTIONTIMEOUT-Bedingungen ermitteln

Um zu bestimmen, ob Replicat auf den Rest einer Quelltransaktion wartet, wenn TRANSACTIONTIMEOUT aktiviert ist, geben Sie den Befehl SEND REPLICAT mit der Option STATUS aus. Die folgenden Statusangaben geben diese Bedingung an:

Performing transaction timeout recovery
Waiting for data at logical EOF after transaction timeout recovery

Standard

Deaktiviert

Syntax

TRANSACTIONTIMEOUT <n> <units>

<n>

Eine Ganzzahl, die das Warteintervall angibt. Gültige Werte liegen zwischen einer Sekunde und einer Woche (sieben Tage). Dieser Wert muss größer als der Wert sein, der mit dem Parameter EOFDELAY sowohl im primären Extract als auch in allen zugehörigen Datenpumpen festgelegt wurde.

<units>

Geeignet sind: S, SEC, SECS, SECOND, SECONDS, MIN, MINS, MINUTE, MINUTES, HOUR, HOURS, DAY, DAYS.

Beispiel

TRANSACTIONTIMEOUT 5 S