Globale Transaktionen
Wenn eine Anwendung zwei oder mehr Ressourcen verwendet, muss ein externer Transaktionsmanager die Aktualisierungen für alle Ressourcenmanager in einer globalen Transaktion koordinieren.
Unterstützung globaler Transaktionen ist für Web- und Enterprise-Bean-Komponenten und, mit gewissen Einschränkungen, für Komponenten von Anwendungsclients verfügbar. Enterprise-Bean-Komponenten können zwei Kategorie unterteilt werden: Beans, die containergesteuerte Transaktionen (CMT, Container-Managed Transactions) verwenden, und Beans, die Bean-gesteuerte Transaktionen (BMT, Bean-Managed Transactions) verwenden.
Nur BMT-Enterprise-Beans, Komponenten von Anwendungsclients und Webkomponenten können die Schnittstelle "UserTransaction" der Java™ Transaction API (JTA) verwenden, um die Grenze einer globalen Transaktion zu definieren. Sie können die Schnittstelle "UserTransaction" mit einer JNDI-Lookup-Operation (Java Naming and Directory Interface) "java:comp/UserTransaction" oder mit der Methode "getUserTransaction" aus dem SessionContext-Objekt abrufen.
Die Schnittstelle "UserTransaction" ist für CMT-Enterprise-Beans nicht verfügbar. Wenn eine CMT-Enterprise-Bean versucht, diese Schnittstelle abzurufen, wird entsprechend der EJB-Spezifikation (Enterprise JavaBeans) eine Ausnahme ausgelöst.
Stellen Sie sicher, dass Programme, die die Schnittstelle "UserTransaction" mit einer JNDI-Lookup-Operation ermitteln, einen InitialContext verwenden, der die Auflösung in eine lokale Implementierung der Schnittstelle durchführt. Vergewissern Sie sich außerdem, dass solche Programme eine JNDI-Adresse verwenden, die für die EJB-Version geeignet ist.
WebSphere Application Server Version 4 und höher binden die Schnittstelle "UserTransaction" an die in der Spezifikation EJB Version 1.1 definierte JNDI-Position. Dies ist "java:comp/UserTransaction".
Eine Webkomponente oder Enterprise-Bean (CMT oder BMT) kann weitere Schnittstellen verwenden, die die JTA-Unterstützung bereitstellen. Diese Schnittstellen unterstützten die Transaktionsidentität und stellen einen Mechanismus bereit, um Benachrichtigungen über den Transaktionsabschluss zu empfangen. Diese Schnittstellen sind folgende: TransactionSynchronizationRegistry, ExtendedJTATransaction und UOWSynchronizationRegistry.