Bei Verwendung mehrerer Datenbanken in einer einzelnen Transaktion gelten andere Anforderungen für das Einrichten und Verwalten Ihrer Umgebung, je nachdem, wie viele Datenbanken in der Transaktion aktualisiert werden.
Wenn Ihre Daten über mehrere Datenbanken verteilt sind, möchten Sie eventuell eine Datenbank aktualisieren, während Sie für eine oder mehrere andere Datenbanken Lesevorgänge ausführen. Diese Art des Zugriffs, die als Aktualisierung auf mehreren Systemen bzw. als zweiphasige Festschreibung bezeichnet wird, kann innerhalb einer einzelnen Arbeitseinheit (Transaktion) erfolgen. Ein weiteres Beispiel für eine Aktualisierung auf mehreren Systemen finden Sie in Aktualisieren mehrerer Datenbanken.
Abbildung 39. Verwenden mehrerer Datenbanken in einer Transaktion
Abbildung 39 zeigt einen Datenbank-Client, der eine Geldtransaktionsanwendung ausführt, die auf zwei Datenbank-Server zugreift: einer enthält das Sparkonto und das Girokonto, der andere den Plan für die Transaktionsgebühren. Dieses Beispiel ähnelt dem in Abbildung 38 gezeigten. Der Unterschied besteht in der Anzahl der Datenbanken und der Speicherposition der Tabellen.
Zur Einrichtung einer Geldtransaktionsanwendung für diese Umgebung sind folgende Schritte auszuführen:
Wenn sich Datenbanken auf einem Host oder einem AS/400-Datenbank-Server befinden, wird das Produkt DB2 Connect zur Herstellung der Konnektivität zu diesen Servern benötigt. Informationen zur Einrichtung von DB2 Connect finden Sie in einem der Handbücher DB2 Connect Einstieg. Informationen zur Verwendung von DB2 Connect enthält das DB2 Connect Benutzerhandbuch.
Wenn Ihre Daten über mehrere Datenbanken verteilt sind, wollen Sie vielleicht mehrere Datenbanken in einer einzelnen Transaktion lesen und aktualisieren. Diese Art des Datenbankzugriffs wird als Aktualisierung auf mehreren Systemen bezeichnet.
Abbildung 40. Aktualisieren mehrerer Datenbanken in einer Transaktion
Abbildung 40 zeigt einen Datenbank-Client, der eine Geldtransaktionsanwendung ausführt, die auf drei Datenbank-Server zugreift: einer enthält das Girokonto, ein anderer das Sparkonto und der dritte den Plan für die Transaktionsgebühren.
Zur Einrichtung einer Geldtransaktionsanwendung für diese Umgebung sind folgende Schritte auszuführen:
Der Datenbankmanager stellt Transaktionsmanagerfunktionen bereit, mit deren Hilfe das Aktualisieren mehrerer Datenbanken innerhalb einer einzelnen Arbeitseinheit koordiniert werden kann. Der Datenbank-Client koordiniert automatisch die Arbeitseinheit und verwendet eine Transaktionsmanagerdatenbank, um jede Transaktion zu registrieren und ihren Fertigstellungsstatus zu protokollieren.
Wenn Sie einen XA-konformen Transaktionsmanager wie IBM TXSeries, BEA Tuxedo oder Microsoft Transaction Server verwenden, finden Sie Anweisungen zur Integration in Kapitel 10, Entwerfen für Transaktionsmanager.
Wenn Sie zur Koordinierung Ihrer Transaktionen DB2 UDB für auf UNIX basierende Systeme, Windows-Betriebssysteme oder OS/2 verwenden, müssen Sie bestimmte Konfigurationsanforderungen erfüllen. Wenn Sie ausschließlich TCP/IP zur Kommunikation verwenden, und DB2 UDB und DB2 für OS/390 die einzigen Datenbank-Server sind, die an Ihren Transaktionen beteiligt sind, ist die Konfiguration recht einfach.
Wenn jeder der folgenden Punkte auf Ihre Umgebung zutrifft, gestalten sich die Konfigurationsschritte für eine Aktualisierung auf mehreren Systemen relativ einfach.
Der DB2 Synchronisationspunktmanager wird automatisch bei der Erstellung eines DB2-Exemplars konfiguriert und ist erforderlich, wenn:
Dies gilt sowohl für die SNA- als auch für die TCP/IP-Konnektivität mit den Host- oder AS/400-Datenbank-Servern. Weitere Informationen finden Sie in Kapitel 10, Entwerfen für Transaktionsmanager. Wenn in Ihrer Umgebung der DB2 Connect-Synchronisationspunktmanager nicht erforderlich ist, können Sie ihn durch folgenden Befehl, der auf dem DB2 Connect-Server eingegeben wird, ausschalten: db2 update dbm cfg using spm_name NULL Anschließend muß DB2 gestoppt und erneut gestartet werden.
Die Datenbank, die als Transaktionsmanagerdatenbank fungieren soll, wird auf dem Datenbank-Client durch den Konfigurationsparameter tm_database des Datenbankmanagers bestimmt. Weitere Informationen zu diesem Konfigurationsparameter finden Sie in Kapitel 32, Konfigurieren von DB2 . Bei der Einstellung dieses Konfigurationsparameters sind folgende Faktoren zu beachten:
Dies ist der empfohlene Datenbank-Server, der als Transaktionsmanagerdatenbank verwendet werden sollte. OS/390-Systeme sind in der Regel sicherer als Workstation-Server, da sie die Möglichkeit versehentlichen Ausschaltens, Neustartens usw. verringern. Aus diesem Grund sind die Wiederherstellungsprotokolle, die im Fall einer Resynchronisation verwendet werden, sicherer.
Bei der Verwendung von 1ST_CONN ist besondere Sorgfalt geboten. Sie sollten diese Konfiguration nur verwenden, wenn es einfach ist, sicherzustellen, daß alle betroffenen Datenbanken korrekt katalogisiert werden, d. h. wenn folgende Bedingungen zutreffen:
Falls Ihre Anwendung versucht, die Verbindung zu der Datenbank, die als Transaktionsmanagerdatenbank fungiert, zu trennen, wird eine Fehlernachricht ausgegeben. Die Verbindung bleibt in diesem Fall erhalten, bis die Arbeitseinheit festgeschrieben ist.
Wenn in Ihrer Umgebung folgendes zutrifft:
In diesen Fällen sind die Konfigurationsschritte für die Aktualisierung auf mehreren Systemen etwas komplizierter.
Die Datenbank, die als Transaktionsmanagerdatenbank fungieren soll, wird auf dem Datenbank-Client durch den Konfigurationsparameter tm_database des Datenbankmanagers bestimmt. Weitere Informationen zu diesem Konfigurationsparameter finden Sie in Kapitel 32, Konfigurieren von DB2 . Bei der Einstellung dieses Konfigurationsparameters sind folgende Faktoren zu beachten:
Bei der Verwendung von 1ST_CONN ist besondere Sorgfalt geboten. Sie sollten diese Konfiguration nur verwenden, wenn es einfach ist, sicherzustellen, daß alle betroffenen Datenbanken korrekt katalogisiert werden, d. h. wenn folgende Bedingungen zutreffen:
Falls Ihre Anwendung versucht, die Verbindung zu der Datenbank, die als Transaktionsmanagerdatenbank fungiert, zu trennen, wird eine Fehlernachricht ausgegeben. Die Verbindung bleibt in diesem Fall erhalten, bis die Arbeitseinheit festgeschrieben ist.