DB2 Universal Database - Systemverwaltung


Kapitel 9. Entwerfen verteilter Datenbanken

Eine Transaktion wird in DB2 allgemein als Arbeitseinheit bezeichnet. Eine Arbeitseinheit ist eine wiederherstellbare Folge von Operationen innerhalb eines Anwendungsprozesses. Der Datenbankmanager kann mit ihrer Hilfe sicherstellen, daß sich eine Datenbank in einem konsistenten Status befindet. Jeder Lese- oder Schreibvorgang in der Datenbank erfolgt innerhalb einer Arbeitseinheit.

Eine Banktransaktion könnte beispielsweise darin bestehen, daß eine Geldsumme von einem Sparkonto auf ein Girokonto überwiesen wird. Nachdem die Anwendung einen Betrag vom Sparkonto abgezogen hat, sind die beiden Konten inkonsistent und bleiben es, bis der Betrag auf dem Girokonto gutgeschrieben ist. Wenn beide Schritte zu Ende geführt sind, ist ein Konsistenzzustand erreicht. Die Änderungen können festgeschrieben und anderen Anwendungen zur Verfügung gestellt werden.

Eine Arbeitseinheit beginnt, wenn die erste SQL-Anweisung für die Datenbank ausgeführt wird. Die Anwendung muß die Arbeitseinheit beenden, indem sie die Anweisung COMMIT oder ROLLBACK absetzt. Die Anweisung COMMIT schreibt alle Änderungen, die innerhalb der Arbeitseinheit vorgenommen wurden, permanent fest. Die Anweisung ROLLBACK löscht diese Änderungen aus der Datenbank. Wenn bei einer normalen Beendigung der Anwendung keine dieser Anweisungen abgesetzt wird, wird die Arbeitseinheit automatisch festgeschrieben. Wenn die Anwendung inmitten einer Arbeitseinheit abnormal beendet wird, wird die Arbeitseinheit automatisch rückgängig gemacht. Sobald eine Anweisung COMMIT oder ROLLBACK abgesetzt wurde, kann sie nicht mehr gestoppt werden. Bei einigen Multithread-Anwendungen oder Betriebssystemen (z. B. Windows) wird die Arbeitseinheit, wenn eine Anwendung normal, jedoch ohne explizite Ausführung einer dieser Anweisungen beendet wird, automatisch rückgängig (ROLLBACK) gemacht. Es wird daher empfohlen, dafür zu sorgen, daß Anwendungen vollständige Arbeitseinheiten immer explizit mit einer Anweisung COMMIT festschreiben oder mit einer Anweisung ROLLBACK rückgängig machen. Wenn ein Teil einer Arbeitseinheit nicht erfolgreich beendet wird, werden die Aktualisierungen rückgängig gemacht, so daß die beteiligten Tabellen in dem Zustand verbleiben, in dem sie vor Beginn der Transaktion waren. Auf diese Weise wird sichergestellt, daß Anforderungen weder verloren gehen noch mehrfach ausgeführt werden.

Unter den folgenden Themen finden Sie weitere Informationen:

Informationen zur Erstellung von Anwendungen für verteilte Datenbanken finden Sie in den Handbüchern Application Development Guide und CLI Guide and Reference.


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