Koordination des Zugriffs auf 1-PC- und 2-PC-Ressourcen innerhalb einer Transaktion
"Last Participant Support" (Unterstützung für den letzten Teilnehmer) ermöglicht den Einsatz einer 1-PC-Ressource zusammen mit einer beliebigen Zahl von 2-PC-Ressourcen in derselben globalen Transaktion. Es können mehrere Interaktionen mit der 1-PC-Ressource in derselben Transaktion ausgeführt werden. An einer solchen Transaktion kann jedoch nur eine dieser Ressourcen beteiligt sein.
Bei der Festschreibung der Transaktion werden zunächst die 2-PC-Ressourcen mit dem 2-PC-Protokoll vorbereitet. Nach erfolgreicher Vorbereitung wird die 1-PC-Ressource zur Festschreibung aufgerufen. Die 2-PC-Ressourcen werden dann gemäß der Antwort der 1-PC-Ressource entweder festgeschrieben oder rückgängig gemacht.
- Im Hauptszenario erfolgt der Zugriff auf den 1-PC-Ressourcenprovider
im Anwendungsserverprozess (dem "Transaktionsstammserver"), in dem die Transaktion gestartet wird.
In diesem Szenario kann der Last Participant Support Service 1-PC-Ressourcen und eine beliebige Anzahl von 2-PC-Ressourcen in einer Transaktion koordinieren.
- Der 1-PC-Ressourcenprovider kann auch einem anderen Anwendungsserver (einem
"untergeordneten Transaktionsserver") als dem, in dem die Transaktion gestartet wird,
aufgerufen werden, z. B. in Folge eines Transaktionsaufrufs
in einer fernen EJB-Schnittstelle.
In diesem Szenario kann die Transaktion in der Regel nicht festgeschrieben werden. Damit eine 1-PC-Ressource, die in einem untergeordneten Transaktionsserver registriert ist, (im Rahmen einer globalen Transaktion) festgeschrieben werden kann, muss der Transaktionsservice die Verantwortung für die Koordination vom Transaktionsstammserver an den untergeordneten Server delegieren. Dies geschieht jedoch nur, wenn keine anderen Ressourcen beim Transaktionsstammserver registriert sind.
Last Participant Support birgt ein erhöhtes Risiko heuristischer Transaktionsergebnisse. Der Transaktionsmanager kann nicht sicher sein, dass alle Ressourcen in derselben Richtung abgeschlossen wurden (d. h. entweder festgeschrieben oder rückgängig gemacht wurden). Damit eine Anwendung 1-PC- und 2-PC-Ressourcen in einer Transaktion koordinieren kann, müssen Sie die Anwendung deshalb so konfigurieren, dass sie das erhöhte Risiko heuristischer Ergebnisse in Kauf nimmt.
Ein heuristisches Ergebnis tritt ein, wenn der Transaktionsservice (JTS) keine Antwort vom 1-PC-Datenfluss der 1-PC-Ressource erhält. In dieser Situation kann der Transaktionsservice nicht feststellen, ob Änderungen für die 1-PC-Ressource festgeschrieben oder rückgängig gemacht wurden, und damit das korrekte Ergebnis der globalen Transaktion in den anderen 2-PC-Ressourcen nicht zuverlässig ableiten.
Sie können den Transaktionsservice für einen Anwendungsserver so konfigurieren, dass er das heuristische Risiko akzeptiert, oder Sie können einzelne Anwendungen konfiguieren, die das heuristische Risiko akzeptieren sollen. Anwendungen können während der Assemblierung oder nach der Implementierung konfiguriert werden.
- Falls die 1-PC-Ressource zum Festschreiben aufgefordert wurde, wird das auf heuristischen Verfahren basierende Ergebnis im Aktivitätenprotokoll aufgezeichnet.
- Falls die 1-PC-Ressource nicht zum Festschreiben aufgefordert wurde, wird die Transaktion einheitlich rückgängig gemacht.
Transaktionsausnahmen bei Ressourcen mit einphasiger und zweiphasiger Festschreibung
Die Ausnahmen, die von Transaktionen ausgelöst werden können, an denen Ressourcen mit einphasiger und zweiphasiger Festschreibung beteiligt sind, sind identisch mit den Ausnahmen, die von Transaktionen ausgelöst werden können, an denen nur Ressourcen mit zweiphasiger Festschreibung beteiligt sind.
Die Ausnahmen, die auftreten können, sind in den Referenzinformationen zu den Anwendungsprogrammierschnittstellen im Information Center von WebSphere Application Server aufgelistet.