DB2 Universal Database - Systemverwaltung


Prozeß der zweiphasigen Festschreibung

Abbildung 42 veranschaulicht die Schritte, die zu einer Aktualisierung auf mehreren Systemen gehören. Kenntnisse über die Art und Weise, wie eine Transaktion verwaltet wird, erweisen sich bei der Problemlösung als hilfreich, wenn während des Prozesses der zweiphasigen Festschreibung ein Fehler auftritt.

Abbildung 42. Aktualisieren mehrerer Datenbanken

Aktualisieren mehrerer Datenbanken

(0)
Die Anwendung ist für die zweiphasige Festschreibung vorbereitet. Dies kann durch Vorkompilierungsoptionen erreicht werden (Einzelangaben finden Sie im Handbuch Application Development Guide). Dies kann auch durch eine Konfiguration von DB2 CLI (Call Level Interface) erreicht werden (Einzelangaben finden Sie im Handbuch CLI Guide and Reference).

(1)
Wenn der Datenbank-Client die Verbindung zur Datenbank SPARKO_DB herstellen will, stellt er zunächst intern die Verbindung zur Transaktionsmanagerdatenbank (TMD) her. Die TMD gibt eine Bestätigung an den Datenbank-Client zurück. Falls der Konfigurationsparameter tm_database des Datenbankmanagers auf den Wert 1ST_CONN gesetzt ist, wird die Datenbank SPARKO_DB für die Dauer dieses Anwendungsexemplars zur Transaktionsmanagerdatenbank.

(2)
Die Verbindung zur Datenbank SPARKO_DB wird hergestellt und bestätigt.

(3)
Der Datenbank-Client beginnt mit der Aktualisierung der Tabelle SPAR_KONTO. Dies ist der Anfang der Arbeitseinheit. Die TMD reagiert auf den Datenbank-Client, indem sie eine Transaktions-ID für die Arbeitseinheit bereitstellt. Beachten Sie, daß die Registrierung einer Arbeitseinheit erfolgt, wenn die erste SQL-Anweisung in der Arbeitseinheit ausgeführt wird, und nicht während der Herstellung der Verbindung.

(4)
Nach dem Empfang der Transaktions-ID registriert der Datenbank-Client die Arbeitseinheit bei der Datenbank, die die Tabelle SPAR_KONTO enthält. Der Client erhält eine Antwort, die besagt, daß die Arbeitseinheit erfolgreich registriert wurde.

(5)
SQL-Anweisungen, die an der Datenbank SPARKO_DB ausgeführt werden, werden auf normale Weise verarbeitet. Die Anwort auf jede Anweisung wird im SQL-Kommunikationsbereich (SQLCA) zurückgegeben, wenn mit SQL-Anweisungen gearbeitet wird, die in ein Programm eingebettet sind. (Eine Beschreibung des SQL-Kommunikationsbereichs (SQLCA) finden Sie in den Handbüchern Application Development Guide und SQL Reference.)

(6)
Die Transaktions-ID wird in der Datenbank GEB_DB, die die Tabelle TRANSAKTION_GEB enthält, beim ersten Zugriff auf diese Datenbank innerhalb der Arbeitseinheit registriert.

(7)
SQL-Anweisungen, die für die Datenbank GEB_DB abgesetzt werden, werden auf normale Weise bearbeitet.

(8)
Zusätzliche SQL-Anweisungen können für die Datenbank SPARKO_DB ausgeführt werden, indem die Verbindung entsprechend eingerichtet wird. Da die Arbeitseinheit bei der Datenbank SPARKO_DB bereits registriert ((4)) wurde, muß der Datenbank-Client den Registrierungsschritt nicht wiederholen.

(9)
Für die Verbindung mit der Datenbank GIROKO_DB und ihre Verwendung gelten die gleichen Regeln, die unter (6) und (7) beschrieben sind.

(10)
Wenn der Datenbank-Client das Festschreiben der Arbeitseinheit anfordert, wird eine Nachricht prepare an alle Datenbanken gesendet, die an der Arbeitseinheit mitwirken. Jede Datenbank schreibt einen Satz "PREPARED" in ihre Protokolldatei und antwortet dem Datenbank-Client.

(11)
Nachdem der Datenbank-Client von allen Datenbanken eine positive Antwort erhalten hat, sendet er eine Nachricht an die Transaktionsmanagerdatenbank, die besagt, daß die Arbeitseinheit für das Festschreiben bereit (PREPARED) ist. Die Transaktionsmanagerdatenbank schreibt den Satz "PREPARED" in ihre Protokolldatei und teilt dem Client in einer Antwort mit, daß die zweite Phase der Festschreibung begonnen werden kann.

(12)
Während der zweiten Phase des Festschreibungsprozesses fordert der Datenbank-Client alle beteiligten Datenbanken in einer Nachricht zum Festschreiben auf. Jede Datenbank schreibt den Satz "COMMITTED" in ihre Protokolldatei und gibt die Sperren frei, die für diese Arbeitseinheit aktiv waren. Wenn die Datenbank das Festschreiben der Änderungen beendet hat, sendet sie eine Antwort an den Client.

(13)
Nachdem der Datenbank-Client von allen beteiligten Datenbanken eine positive Antwort erhalten hat, sendet er eine Anforderung an die Transaktionsmanagerdatenbank, um ihr mitzuteilen, daß die Arbeitseinheit beendet wurde. Daraufhin schreibt die Transaktionsmanagerdatenbank einen Satz "COMMITTED" in ihre Protokolldatei, der anzeigt, daß die Arbeitseinheit beendet ist, und sendet eine Antwort an den Client, daß der Prozeß beendet wurde.


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]