JMS-Zieladressen, die Nachrichten an einen JMSInput-Knoten senden oder Nachrichten von einem JMSOutput-Knoten empfangen, können als Teil einer globalen Nachrichtenfluss-Transaktion der Synchronisationspunktsteuerung unterliegen.
Transaktionen unter Verwendung des Synchronisationspunkt-Koordinators
In dieser Abbildung werden Nachrichten aus einem Thema von einem JMSInput-Knoten empfangen und von einem JMSOutput-Knoten an die JMS-Warteschlange ausgegeben. Die Knoten werden mit einem JMS-Provider verbunden und unterhalten eine Sitzung mit ihm. Jeder Empfangsknoten im Nachrichtenfluss kann den externen Koordinator der Synchronisationspunktsteuerung darüber informieren, wann ein Nachrichtenfluss beginnt und endet, und ob Ressourcen, die von dem Fluss betroffen sind, festgeschrieben oder zurückgesetzt werden sollen.
Der Synchronisationspunkt-Koordinator sendet XA/Open-kompatible Anforderungen an alle teilnehmenden Ressourcenmanager zu deren Vorbereitung. Änderungen werden entweder festgeschrieben oder zurückgesetzt. Ressourcenmanager, z. B. WebSphere MQ, DB2 und alle XA-kompatiblen JMS-Provider, können an einer globalen Transaktion mitwirken.
Als externer Synchronisationspunkt-Koordinator unter anderen Betriebssystemen als z/OS agiert WebSphere MQ, unter z/OS ist es RRS (Resource Recovery Services).
Der JMSInput-Knoten und der JMSOutput-Knoten können nur an einer globalen Transaktion mitwirken, wenn der JMS-Provider, mit dem sie sich verbinden, die XA/Open-Schnittstelle über die JMS-Klasse XAResource unterstützt. Der WebSphere MQ-Java Client ist beispielsweise ein solcher JMS-Provider.
Sie können eine generische Verbindungsfactory (recoverXAQCF) angeben, um koordinierte XA-Transaktionen wiederherzustellen.
Unbestätigte Transaktionen
Unbestätigte Transaktionen können auftreten, wenn ein Ressourcenmanager nicht auf einen Aufruf des Synchronisationspunktmanagers zur Festschreibung oder Rücksetzung von Ressourcen antwortet. Während des Starts des WebSphere MQ-Warteschlangenmanagers des Brokers wird eine erste Fehlerbehebungsmaßnahme durchgeführt, um sicherzustellen, dass alle unbestätigten Transaktionen aufgelöst werden, bevor die Nachrichtenflüsse des Brokers mit der Verarbeitung neuer Eingaben beginnen. Ein JMS-Provider, der an globalen Brokertransaktionen mitwirkt, wird in diese Fehlerbehebungsmaßnahme aufgenommen.
Unter anderen Betriebssystemen als z/OS muss für WebSphere MQ vor der Implementierung eine Verwaltungstask ausgeführt werden. Dabei wird eine Brokerkomponente, bei der es sich um eine gemeinsam genutzte Bibliothek handelt, beim WS-Manager registriert, indem ein Verweis von der gemeinsam genutzten Bibliothek auf eine Switch-Datei erstellt wird.
Beim Start des WebSphere MQ-Warteschlangenmanagers des Brokers wird die Switch-Datei geladen. Die Switch-Datei leitet XA/Open-Transaktionsaufrufe vom Koordinator der Synchronisationspunktsteuerung an den JMS-Provider weiter. Auf diese Weise wird sichergestellt, dass die JMS-Ressourcen, die an der Transaktion mitwirken, hinsichtlich der Synchronisation mit anderen Ressourcenmanagern in derselben Transaktion koordiniert werden können.
Um eine globale Transaktionsunterstützung für den JMSInput- und den JMSOutput-Knoten zu ermöglichen, sind zusätzliche Konfigurationsschritte erforderlich (siehe JMSInput- und JMSOutput-Knoten zur Unterstützung von globalen Transaktionen konfigurieren).