Sie können einen
Nachrichtenfluss für den Empfang oder die Ausgabe von Nachrichten unter
koordinierten Transaktionen konfigurieren.
Wenn Sie einen Knoten, z. B. den JMSInput- oder
SOAPInput-Knoten, der einen einen
JMS-Transport verwendet, in einen Nachrichtenfluss aufnehmen, wird über den für den
Transaktionsmodus festgelegten Wert definiert,
ob die Nachrichten unter Verwendung eines Synchronisationspunktes empfangen werden.
- Wird diese Eigenschaft auf Ja gesetzt (die
Flusseigenschaft Koordinierte Transaktion ist
ausgewählt), wird die Nachricht unter externer Synchronisationspunktkoordination, d. h.
innerhalb einer WebSphere MQ-Arbeitseinheit empfangen. Alle Nachrichten, die später von einem Sendeknoten in derselben Instanz des Nachrichtenflusses gesendet werden, unterliegen der Synchronisationspunktsteuerung, sofern diese Einstellung nicht explizit vom Sendeknoten außer Kraft gesetzt wird.
- Wenn Sie für diese Eigenschaft Ja festlegen
und die Flusseigenschaft Koordinierte Transaktion nicht
ausgewählt ist, wird die Nachricht unter der lokalen Synchronisationspunktsteuerung des
Knotens empfangen. Alle Nachrichten, die später von einem Sendeknoten im Nachrichtenfluss gesendet werden, unterliegen nicht der lokalen Synchronisationspunktsteuerung, sofern diese nicht ausdrücklich von einem einzelnen Sendeknoten vorgegeben ist.
- Wird der Wert für diese Eigenschaft auf Nein
gesetzt, unterliegt der Empfang der Nachricht nicht der Synchronisationspunktsteuerung. Alle Nachrichten, die später von einem Sendeknoten im Nachrichtenfluss gesendet werden, unterliegen nicht der Synchronisationspunktsteuerung, sofern diese nicht ausdrücklich von einem einzelnen Sendeknoten vorgegeben ist.
Für den Empfang von Nachrichten unter einer externen Synchronisationspunktsteuerung
müssen Sie zusätzliche Konfigurationsschritte ausführen, die nur erforderlich sind, wenn
ein bestimmter Knoten, der einen JMS-Transport verwendet, zum ersten Mal für einen
bestimmten JMS-Provider auf dem Broker eingesetzt wird.
- Auf verteilten Systemen wird WebSphere MQ als externer
Synchronisationspunkt-Koordinator für den Broker verwendet. Vor der Implementierung eines
Nachrichtenflusses, bei dem die Eigenschaft
Transaktionsmodus auf
Global oder
Ja gesetzt ist und der für die Verwendung
XA-koordinierter Transaktionen vorgesehen ist, muss die Datei .ini
des Warteschlangenmanagers geändert werden, und zwar müssen für jeden Ressourcenmanager des
JMS-Providers, der an global koordinierten Transaktionen beteiligt ist, zusätzliche Definitionen
aufgenommen werden.
Unter Windows: - Starten Sie den WebSphere MQ-Explorer.
- Klicken Sie im linken Teilfenster mit der rechten Maustaste auf den Namen des
Warteschlangenmanagers und klicken Sie auf Eigenschaften.
- Klicken Sie im linken Teilfenster auf XA-Ressourcenmanager.
- Klicken Sie auf Hinzufügen....
- Legen Sie die Optionen wie folgt fest:
- Setzen Sie Name auf einen beliebigen Wert.
- Setzen Sie auf Windows x86-Systemen die
Eigenschaft SwitchFile auf
Installationsverzeichnis\bin\JMSSwitch.dll.
Setzen Sie auf Windows x86-64-Systemen die
Eigenschaft SwitchFile auf
JMSSwitch.dll.
- Setzen Sie die Eigenschaft XAOpenString auf
einen Zeichenfolgewert folgenden Formats:
Ausgangskontext,JNDI-Position,Optionale_Parameter.
- Setzen Sie die Eigenschaft
ThreadOfControlauf
Thread.
- Kopieren Sie - nur auf Windows x86-64-Systemen
- die Switch-Datei JMSSwitch32.dll in das Unterverzeichnis
\exits, das sich im
WebSphere MQ-Installationsverzeichnis befindet, und ändern
Sie deren Namen in JMSSwitch.dll. Kopieren Sie die Switch-Datei in das Unterverzeichnis \exits64 im Installationsverzeichnis von WebSphere MQ.
Weitere Informationen finden Sie im System Administration Guide (Handbuch zur Systemverwaltung) unter WebSphere MQ Version 7 Information Center
online.

Fügen Sie auf Linux- und
UNIX-Systemen für jeden JMS-Provider eine Zeilengruppe zur
.ini-Datei des WS-Managers hinzu. Beispiel:
XAResourceManager:
Name=Name_des_JMS-Providers
SwitchFile=/Installationsverzeichnis/bin/ JMSSwitch.so
XAOpenString=Ausgangskontext, JNDI-Position, Optionale Parameter
ThreadOfControl=THREAD
Dabei gilt:
- Name
- Ein bei der Installation definierter Name, der einen Ressourcenmanager des JMS-Providers
identifiziert.
- SwitchFile
- Der Dateisystempfad zur JMSSwitch-Bibliothek, der im Brokerverzeichnis bin angegeben wird.
XAOpenString
kann folgende Werte haben:
- Ausgangskontext ist der Wert, der in der Eigenschaft Ausgangskontextfactory des JMSInput-Knotens festgelegt wurde.
- JNDI-Position ist der
Wert, der in der Eigenschaft Location JNDI bindings
(Position der JNDI-Bindungen) des JMSInput-Knotens
festgelegt wurde. Dieser Wert muss ein unterstütztes URL-Präfix mit einem im Klassenpfad verfügbaren URL-Handler umfassen.
Die folgenden Parameter sind optional:
- LDAP-Principal entspricht dem Wert, der mit
den Befehlen mqsicreatebroker oder
mqsichangebroker für den Broker festgelegt
wurde.
- LDAP-Berechtigungsnachweise entspricht dem
Wert, der mit den Befehlen mqsicreatebroker
oder mqsichangebroker für den Broker
festgelegt wurde.
- Name der Wiederherstellungs-Verbindungsfactory
entspricht der JNDI-verwalteten Verbindungsfactory, die in den JNDI-Bindungen definiert ist. Wenn
kein Wert angegeben wird, muss zur JMS-Bindungsdatei ein Standardwert für
recoverXAQCF hinzugefügt werden. In jedem Fall muss die Wiederherstellungs-Verbindungsfactory für den JMS-Provider, der der Ausgangskontextfactory zugeordnet ist, als eine XA-Warteschlangenverbindungsfactory definiert werden.
Die
optionalen Parameter werden durch Kommas getrennt und sind positionsgebunden.
Aus diesem Grund
müssen fehlende Parameter durch ein Komma dargestellt werden. Beispiel:
com.sun.jndi.fscontext.RefFSContextFactory,file:/C:/webservices/SOAP/JMS/JNDIXA,,,QCF
- Aktualisieren Sie die Java™-Umgebungsvariable CLASSPATH für den Warteschlangenmanager des Brokers und fügen Sie einen Verweis auf die Datei xarecovery.jar ein, z. B.:
Installationsverzeichnis/classes/xarecovery.jar
- Aktualisieren Sie die Java-Umgebungsvariable PATH für den Warteschlangenmanager des Brokers. Sie muss auf das Verzeichnis 'bin' verweisen, in dem sich die Switch-Datei befindet. Ein Beispiel:
Installationsverzeichnis/bin
Schließlich müssen Sie sicherstellen, dass Sie folgende Konfigurationsschritte ausgeführt haben:
- Vergewissern Sie sich im Archiveditor von WebSphere Message
Broker, dass im Nachrichtenfluss die Eigenschaft coordinated
(koordiniert) aktiviert ist.
- Stellen Sie sicher, dass für jeden Knoten, der in die XA-Transaktion aufgenommen werden muss,
der Transaktionsmodus global festgelegt wurde.
- Stellen Sie sicher, dass die Service-ID für den Broker der Service-ID für den Warteschlangenmanager entspricht.
- Stellen Sie sicher, dass die Factory-Objekte der JNDI-Verbindung, die die JMS-Knoten für eine globale Transaktion verwenden, vom Typ MQXAConnectionFactory,
MQXAQueueConnectionFactory bzw. MQXATopicConnectionFactory sind.
- Wenn Sie die Bindungen mit
WebSphere Message
Broker Explorer erstellen, vergewissern Sie sich beim
Definieren der Verbindungsfactory, dass die
Option zur Unterstützung von XA-Transaktionen
aktiviert ist.
- Wenn Sie die Bindungen mit JMSAdmin erstellen, verwenden Sie beim Definieren der
Verbindungsfactory den Befehl DEF
XAQCF bzw. DEF XATCF anstelle von DEF
QCF bzw. DEF TCF.
Weitere Informationen finden Sie im System Administration Guide (Handbuch zur Systemverwaltung) unter WebSphere MQ Version 7 Information Center
online.
Unter z/OS wird als externer
Synchronisationspunktmanager RRS (Resource Recovery Services) verwendet. Unter z/OS wird
als JMS-Provider lediglich WebSphere MQ JMS unterstützt. Die
Bindungsoption ist die einzige Transportoption, die für WebSphere MQ
JMS unter z/OS unterstützt wird. Die Synchronisationspunktsteuerung für den JMS-Provider wird über die RRS-Synchronisationspunktkoordination des Warteschlangenmanagers des Brokers verwaltet. Die Datei .ini muss nicht geändert werden.