Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (Deutsch) » SQL Anywhere Server - Programmierung » Dreischichtige Datenverarbeitung und verteilte Transaktionen » Verteilte Transaktionen verwenden

 

Wiederherstellung nach verteilten Transaktionen

Wenn der Datenbankserver einen Fehler aufweist, während nicht festgeschriebene Vorgänge auf Ausführung warten, müssen diese Vorgänge beim Neustart entweder zurückgesetzt oder festgeschrieben werden, damit die atomare Natur der Transaktion geschützt wird.

Wenn während der Wiederherstellung nicht festgeschriebene Vorgänge einer verteilten Transaktion gefunden werden, versucht der Datenbankserver eine Verbindung mit DTC herzustellen und fordert, wieder in die auf Ausführung wartenden bzw. in die zweifelhaften Transaktionen einbezogen zu werden. Wenn die Wiedereinbeziehung abgeschlossen ist, weist DTC den Datenbankserver an, die ausstehenden Vorgänge zurückzusetzen oder festzuschreiben.

Wenn der Wiedereinbeziehungsvorgang fehlschlägt, kann SQL Anywhere nicht wissen, ob die zweifelhaften Vorgänge festgeschrieben oder zurückgesetzt werden sollten, und die Wiederherstellung schlägt fehl. Wenn die Datenbank, unabhängig vom unsicheren Status der Daten, wieder in einen solchen Status hergestellt werden soll, können Sie die Wiederherstellung mit den folgenden Datenbankserveroptionen erzwingen:

  • -tmf   Wenn DTC nicht geladen werden kann, werden die ausstehenden Vorgänge zurückgesetzt und die Wiederherstellung wird fortgesetzt. Siehe -tmf - dbeng12/dbsrv12-Serveroption.

  • -tmt   Wenn die Wiedereinbeziehung vor der angegebenen Zeit nicht gelingt, werden die ausstehenden Vorgänge zurückgesetzt und die Wiederherstellung wird fortgesetzt. Siehe -tmt - dbeng12/dbsrv12-Serveroption.