XA-kompatible Transaktionsmanager konfigurieren

Konfigurieren Sie zuerst den IBM® MQ -Basisclient und anschließend die erweiterte transaktionsorientierte Funktion anhand der Informationen in diesen Abschnitten.

Hinweis: In diesem Abschnitt wird davon ausgegangen, dass Sie über ein grundlegendes Verständnis der XA-Schnittstelle verfügen, die von der Open Group unter Distributed Transaction Processing: The XA Specificationveröffentlicht wurde.
Um einen erweiterten transaktionsorientierten Client zu konfigurieren, müssen Sie zuerst den IBM MQ -Basisclient wie in beschrieben konfigurieren:Mithilfe der Informationen für Ihre Plattform können Sie dann die erweiterte transaktionsorientierte Funktion für einen XA-kompatiblen Transaktionsmanager wie CICS® und Tuxedo konfigurieren.

Ein Transaktionsmanager kommuniziert mit einem Warteschlangenmanager als Ressourcenmanager, der denselben MQI-Kanal verwendet, wie er von der Clientanwendung verwendet wird, die mit dem Warteschlangenmanager verbunden ist. Wenn der Transaktionsmanager einen Funktionsaufruf des Ressourcenmanagers (xa_) ausgibt, wird der MQI-Kanal verwendet, um den Aufruf an den Warteschlangenmanager weiterzuleiten und die Ausgabe vom WS-Manager zurückzuerhalten.

Entweder kann der Transaktionsmanager den MQI-Kanal starten, indem er einen xa_open-Aufruf ausgibt, um den Warteschlangenmanager als Ressourcenmanager zu öffnen, oder die Clientanwendung kann den MQI-Kanal starten, indem er einen MQCONN-oder MQCONNX-Aufruf ausgibt.
  • Wenn der Transaktionsmanager den MQI-Kanal startet und die Clientanwendung später MQCONN oder MQCONNX in demselben Thread aufruft, wird der MQCONN-oder MQCONNX-Aufruf erfolgreich ausgeführt und eine Verbindungskennung wird an die Anwendung zurückgegeben. Die Anwendung empfängt keinen Beendigungscode MQCC_WARNING mit einem Ursachencode MQRC_ALREADY_CONNECTED.
  • Wenn die Clientanwendung den MQI-Kanal startet und der Transaktionsmanager später xa_open im selben Thread aufruft, wird der xa_open-Aufruf unter Verwendung des MQI-Kanals an den Warteschlangenmanager weitergeleitet.
In einer Wiederherstellungssituation nach einem Fehler, wenn keine Clientanwendungen ausgeführt werden, kann der Transaktionsmanager einen dedizierten MQI-Kanal verwenden, um alle unvollständigen Arbeitseinheiten wiederherzustellen, an denen der Warteschlangenmanager zum Zeitpunkt des Fehlers beteiligt war.
Beachten Sie die folgenden Bedingungen, wenn Sie einen erweiterten transaktionsorientierten Client mit einem XA-konformen Transaktionsmanager verwenden:
  • In einem einzelnen Thread kann eine Clientanwendung immer nur mit einem Warteschlangenmanager verbunden sein. Diese Einschränkung gilt nur, wenn ein erweiterter transaktionsorientierter Client verwendet wird. Eine Clientanwendung, die einen IBM MQ -Basisclient verwendet, kann mit mehreren Warteschlangenmanagern gleichzeitig in einem einzigen Thread verbunden sein.
  • Jeder Thread einer Clientanwendung kann eine Verbindung zu einem anderen WS-Manager herstellen.
  • Eine Clientanwendung kann keine gemeinsam genutzten Verbindungskennungen verwenden.
Um die erweiterte transaktionsorientierte Funktion zu konfigurieren, müssen Sie dem Transaktionsmanager die folgenden Informationen für jeden Warteschlangenmanager bereitstellen, der als Ressourcenmanager fungiert:
  • Eine xa_open-Zeichenfolge
  • Ein Zeiger auf eine XA-Switchstruktur
Wenn der Transaktionsmanager xa_open aufruft, um den Warteschlangenmanager als Ressourcenmanager zu öffnen, übergibt er die xa_open-Zeichenfolge an den erweiterten transaktionsorientierten Client als Argument xa_info für den Aufruf. Der erweiterte transaktionsorientierte Client verwendet die Informationen in der Zeichenfolge xa_open auf die folgenden Arten:
  • Gehen Sie wie folgt vor, um einen MQI-Kanal zum Server-WS-Manager zu starten, wenn die Clientanwendung noch nicht gestartet wurde.
  • Überprüfen Sie, ob der Warteschlangenmanager, der der Transaktionsmanager als Ressourcenmanager geöffnet wird, mit dem Warteschlangenmanager identisch ist, zu dem die Clientanwendung eine Verbindung herstellt.
  • Um die Funktionen ax_reg und ax_unreg des Transaktionsmanagers zu lokalisieren, wenn der Warteschlangenmanager die dynamische Registrierung verwendet

Das Format einer xa_open-Zeichenkette und weitere Einzelheiten darüber, wie die Informationen in der xa_open-Zeichenkette von einem erweiterten transaktionalen Client verwendet werden, finden Sie unter Das Format einer xa_open-Zeichenkette.

Eine XA-Switchstruktur ermöglicht es dem Transaktionsmanager, die vom erweiterten transaktionsorientierten Client bereitgestellten xa-Funktionen zu lokalisieren und gibt an, ob der Warteschlangenmanager die dynamische Registrierung verwendet. Informationen zu den XA-Switch-Strukturen, die mit einem erweiterten transaktionalen Client geliefert werden, finden Sie unter Die XA-Switch-Strukturen.

Informationen zum Konfigurieren der erweiterten transaktionsorientierten Funktion für einen bestimmten Transaktionsmanager und weitere Informationen zur Verwendung des Transaktionsmanagers mit einem erweiterten transaktionsorientierten Client finden Sie in den folgenden Abschnitten: