Transaktionstyp und Verbindungsverhalten

Alle Verbindungen werden entweder im Rahmen einer globalen Transaktion oder in einem so genannten lokalen Transaktionseinschluss (LTC, Local Transaction Containment) verwendet. Jeder Transaktionstyp stellt andere Anforderungen an die Verbindungen und wirkt sich auf andere Art und Weise auf die Verbindungseinstellungen aus.

Gemeinsame Nutzung und Wiederverwendung von Verbindungen

Verbindungen können im Rahmen einer globalen Transaktion (sofern die anderen Regeln für gemeinsame Nutzung zutreffen) gemeinsam nutzt werden. Außerdem können Verbindungen in einem gemeinsam nutzbaren lokalen Transaktionseinschluss gemeinsam genutzt werden. Im Rahmen eines lokalen Transaktionseinschlusses können Sie Verbindungen serialisieren. Sie können dieselbe Verbindung wieder verwenden, wenn Sie das Verbindungsmuster "anfordern/verwenden/schließen" zwei Mal hintereinander (für dieselbe Datenquelle oder Verbindungsfactory) codieren. Weitere Einzelheiten finden Sie im Artikel "Nicht gemeinsam nutzbare und gemeinsam nutzbare Verbindungen".

Verhalten von JDBC AutoCommit

Für alle JDBC-Verbindungen ist AutoCommit standardmäßig auf TRUE gesetzt, wenn sie mit der Methode getConnection() angefordert werden. Allerdings können ein anderer Geltungsbereich für die Transaktion und andere Einstellungen bewirken, dass der AutoCommit-Wert geändert oder einfach überschrieben wird.
  • Wenn Sie im Rahmen eines lokalen Transaktionseinschlusses arbeiten und die Auflösungssteuerung auf Application (Anwendung) gesetzt ist, bleibt AutoCommit auf TRUE eingestellt, sofern diese Einstellung nicht von der Anwendung geändert wird.
  • Wenn Sie im Rahmen eines lokalen Transaktionseinschlusses arbeiten und die Auflösungssteuerung auf ContainerAtBoundary gesetzt ist, darf die Anwendung die Einstellung von AutoCommit nicht ändern. Die Laufzeitumgebung von WebSphere Application Server setzt den Wert von AutoCommit auf FALSE, bevor mit Operationen begonnen wird, und schreibt am Ende des LTC-Geltungsbereichs die durchgeführten Operationen fest (Commit) oder macht sie rückgängig (Rollback).
  • Wenn Sie eine Verbindung in einer globalen Transaktion verwenden, ignoriert die Datenbank die AutoCommit-Einstellung, sodasss der Transaktionsservice, der die COMMIT- und ROLLBACK-Verarbeitung steuert, die Transaktion verwalten kann. Diese Aktion wird unabhängig von einer Änderung der AutoCommit-Einstellung bei der ersten Verwendung der Verbindung ausgeführt. Nach Abschluss der Transaktion nimmt die Eigenschaft "Autocommit" wieder den Wert an, den es vor der ersten Verwendung der Verbindung hatte. Selbst wenn der Wert von "AutoCommit" auf TRUE gesetzt ist, bevor die Verbindung in einer globalen Transaktion verwendet wird, müssen Sie den Wert nicht auf FALSE setzen, weil der Wert von der Datenbank ignoriert wird. In diesem Beispiel wird der AutoCommit-Wert der Verbindung nach Abschluss der Transaktion auf TRUE zurückgesetzt.
  • Wenn Sie innerhalb einer globalen Transaktion mehrere getrennte Verbindungen verwenden, wird die gesamte Arbeit gemeinsam festgeschrieben oder rückgängig gemacht. Dies ist im LTC-Geltungsbereich nicht der Fall. In einem lokalen Transaktionseinschluss wird die Arbeit, die in einer Verbindung ausgeführt wird, unabhängig von den Arbeiten in anderen Verbindungen des lokalen Transaktionseinschlusses festgeschrieben oder zurückgesetzt.

1-PC- und 2-PC-Verbindungen

Durch die Art und Anzahl der Ressourcenmanager, z. B. Datenbankserver, auf die eine Anwendung zugreifen muss, werden häufig die Anforderungen festgelegt, die Anwendungstransaktionen erfüllen müssen. Folglich legt jede Art von Ressourcenmanager andere Anforderungen für das Verbindungsverhalten fest.
  • Ein 2-PC-Ressourcenmanager (Two-Phase Commit) kann eine zweiphasige Koordination einer Transaktion unterstützen. Eine solche Unterstützung ist für Transaktionen erforderlich, die andere Ressourcenmanager verwenden. Dies sind globale Transaktionen. Weitere Erläuterungen finden Sie im Artikel "Transaktionsunterstützung in WebSphere Application Server.
  • Ein 1-PC-Ressourcenmanager (One-Phase Commit) unterstützt lediglich einphasige Transaktionen oder LTC-Transaktionen, in denen die betreffende Ressource der einzige verwendete Datenspeicher ist. Weitere Erläuterungen finden Sie im Artikel "Transaktionsunterstützung in WebSphere Application Server.

1-PC-Ressourcen (One-phase phase commit, einphasiges Festschreiben) zeichnen sich dadurch aus, dass Arbeiten, die in einer einphasigen Verbindung ausgeführt werden, nicht mit Arbeiten in anderen Verbindungen vermischt werden können. Sie stellen außerdem, dass die Arbeiten in allen Verbindungen entweder als Ganzes abgeschlossen werden oder fehlschlagen. Das Produkt lässt nur eine 1-PC-Verbindung in einer globalen Transaktion zu. Außerdem ist es nicht zulässig, in einer globalen Transaktion eine 1-PC-Verbindung mit einer oder mehreren 2-PC-Verbindungen auszuführen. Es können nur mehrere 2-PC-Verbindungen in einer globalen Transaktion koordiniert werden.

WebSphere Application Server bietet die Unterstützung für letzten Teilnehmer (Last Participant Support), die die Teilnahme einer einzelnen 1-PC-Ressource an einer globalen Transaktion mit einer oder mehreren 2-PC-Ressourcen ermöglicht.

Wenn Sie mehrere getConnection()-Aufrufe mit einer Ressourcenreferenz durchführen, in der res-sharing-scope=Unshareable definiert ist, können Sie mehrere physische Verbindungen anfordern. Dies ist auch der Fall, wenn res-sharing-scope=Shareable definiert ist. Allerdings wird hier gegen die Regeln für gemeinsame Benutzung verstoßen. In jedem Fall müssen Sie beim Ausführen einer Operation in einer globalen Transaktion sicherstellen, dass die beteiligten Ressourcen für 2-PC-Operationen geeignet (Dies wird auch als JTA-fähig bezeichnet.) Sollten die Ressourcen nicht für 2-PC-Operationen geeignet sein, wird eine Ausnahme vom Typ XA ausgelöst, für die folgende Nachricht protokolliert wird:
WTRN0063E: Es wurde versucht, eine einphasige Ressource mit zweiphasigen Ressourcen zu registrieren.
Dieser Vorgang ist ungültig.

Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cdat_codatc
Dateiname:cdat_codatc.html