Wenn Ihre Anwendung während einer Transaktion auf einen Host- oder AS/400-Datenbank-Server zugegriffen hat, gibt es einige Unterschiede darin, wie unbestätigte Transaktionen wiederhergestellt werden.
DB2 Connect wird für den Zugriff auf Host- oder AS/400-Datenbank-Server verwendet. Die Schritte zur Wiederherstellung unterscheiden sich, wenn bei DB2 Connect der DB2-Synchronisationspunktmanager konfiguriert ist.
Die Wiederherstellung unbestätigter Transaktionen auf Host- oder AS/400-Servern wird normalerweise automatisch vom Transaktionsmanager (TM) und dem DB2-Synchronisationspunktmanager (SPM) durchgeführt. Eine unbestätigte Transaktion auf einem Host- oder AS/400-Server belegt keine Ressourcen auf der lokalen DB2-Station, belegt jedoch Ressourcen auf dem Host- oder AS/400-Server, solange die Transaktion auf dem betreffenden Server unbestätigt bleibt. Wenn der Host- oder AS/400-Server bestimmt, daß eine heuristische Maßnahme durchzuführen ist, kann der Administrator mit dem lokalen DB2-Datenbankadministrator (z. B. per Telefon) in Kontakt treten, um festzustellen, ob die Transaktion auf dem Host- oder AS/400-Server festzuschreiben (COMMIT) oder rückgängig zu machen (ROLLBACK) ist. Wenn dies geschieht, kann der Befehl LIST DRDA INDOUBT TRANSACTIONS verwendet werden, um den Status der Transaktion auf dem lokalen DB2 Connect-Exemplar zu ermitteln. In den meisten Fällen können Sie in einer SNA-Übertragungsumgebung folgendermaßen vorgehen:
db2 => connect to db2spm Datenbankverbindungsinformationen Datenbankprodukt = SPM0500 SQL-Berechtigungs-ID = CRUS Aliasname der lokalen Datenbank = DB2SPM
db2 => list drda indoubt transactions Unbestätigte DRDA-Transaktionen: 1.db_name: DBAS3 db_alias: DBAS3 role: AR uow_status: C partner_status: I partner_lu: USIBMSY.SY12DQA corr_tok: USIBMST.STB3327L luwid: USIBMST.STB3327.305DFDA5DC00.0001 xid: 53514C2000000017 00000000544D4442 0000000000305DFD A63055E962000000 00035F
db2 => list drda indoubt transactions SQL1251W Keine Daten für manuelle Abfrage zurückgegeben.dann wurde die Transaktion rückgängig gemacht.
Es gibt jedoch noch eine weitere Situation, die zwar unwahrscheinlich ist, aber dennoch auftreten kann. Wenn eine unbestätigte Transaktion mit einer ordnungsgemäßen luwid für die partner_lu angezeigt wird, aber der uow_status den Wert "I" aufweist, kann der SPM nicht entscheiden, ob die Transaktion festzuschreiben oder mit ROLLBACK rückgängig zu machen ist. In diesem Fall sollten Sie den Parameter WITH PROMPTING verwenden, um die Transaktion auf der DB2 Connect-Workstation festzuschreiben oder rückgängig zu machen. Erlauben Sie dann DB2 Connect die Resynchronisation mit dem Host- oder AS/400-Server auf der Basis der heuristischen Entscheidung.
Verwenden Sie die Informationen in diesem Abschnitt, wenn die TCP/IP-Konnektivität verwendet wird, um DB2 für OS/390 in einer Aktualisierung auf mehreren Systemen von DB2 Connect Personal Edition oder DB2 Connect Enterprise Edition zu aktualisieren und der DB2-Synchronisationspunktmanager nicht verwendet wird. Die Wiederherstellung unbestätigter Transaktionen ist in diesem Fall anders als bei Verwendung des DB2-Synchronisationspunktmanagers. Wenn eine unbestätigte Transaktion in dieser Umgebung auftritt, wird auf dem Client, auf dem Datenbank-Server und/oder in der Transaktionsmanagerdatenbank (TMD), je nachdem, wo der Fehler festgestellt wurde, ein Alert-Eintrag generiert. Der Alert-Eintrag wird in die Datei db2alert.log geschrieben. Weitere Informationen zu Alerts finden Sie im Handbuch Troubleshooting Guide.
Die Resynchronisation aller unbestätigten Transaktionen erfolgt automatisch, sobald die TMD und alle beteiligten Datenbanken sowie ihre Verbindungen wieder verfügbar sind. Es ist besser, eine automatische Resynchronisation zuzulassen, als manuell eine Entscheidung beim Datenbank-Server herbeizuführen. Wenn dies jedoch erforderlich ist, gehen Sie wie im folgenden beschrieben vor.
Anmerkung: | Da der DB2-Synchronisationspunktmanager nicht verwendet wird, können Sie den Befehl LIST DRDA INDOUBT TRANSACTIONS nicht verwenden. |
Stellen Sie anhand dieser Liste die Transaktion fest, die Sie manuell zu beenden möchten. Einzelheiten zum Befehl DISPLAY finden Sie im Handbuch DB2 for OS/390 Command Reference. Die angezeigte LUWID kann derselben luwid in der Transaktionsmanagerdatenbank zugeordnet werden.
Einzelheiten zum Befehl RECOVER finden Sie im Handbuch DB2 for OS/390 Command Reference.