Versionshinweise zu Sun Java System Message Queue 4.2

C-API-Unterstützung für verteilte Transaktionen

Gemäß dem verteilten Transaktionsmodell von X/Open beruht die Unterstützung für Transaktionen auf einem Manager für verteilte Transaktionen, der die von einer oder mehreren Ressourcenmanagern durchgeführten Vorgänge aufzeichnet und verwaltet. In Message Queue 4.2 unterstützt Message Queue C-API nun die XA-Schnittstelle (zwischen einem Manager für verteilte Transaktionen und Message Queue als XA-konformen Ressourcenmanager), was es Message Queue C-API-Clients, die in einer Umgebung ausgeführt werden, die verteilte Transaktionen verarbeitet (wie beispielsweise BEA Tuxedo), sich an verteilten Transaktionen zu beteiligen.

Diese Unterstützung für verteilte Transaktionen besteht aus folgenden neuen C-AP-Funktionen (und neuen Parametern und Fehlercodes), die zur Implementierung der XA-Schnittstellenspezifikation verwendet werden:

MQGetXAConnection()
MQCreateXASession()

Wenn eine C-Client-Anwendung im Kontext einer verteilten Transaktion verwendet werden soll, muss sie mithilfe von MQGetXAConnection() eine Verbindung herstellen und mithilfe von MQCreateXASession() eine Sitzung für Produktion und Konsum von Nachrichten erstellen. . Starten, Übernehmen und Zurücksetzen von verteilten Transaktionen wird durch APIs verwaltet, die vom Manager für verteilte Transaktionen bereitgestellt werden.

Öffentliche Informationen

Für de X/Open-XA-Schnittstellenspezifikation sind folgende öffentlichen Informationen in Bezug auf den XA-konformen Message Queue-Ressourcenmanager erforderlich:

Folgende Name/Wert-Paare werden unterstützt:

Tabelle 1–6 Name/Wert-Paare des Message Queue-Ressourcenmanagers

Name 

Wert 

Beschreibung 

Standard 

Adresse 

host:port

Der Host:Anschluss des Portmapper-Diensts des Brokers. 

localhost:7676

username 

string 

Der Benutzername für die Herstellung einer Verbindung zum Broker 

guest

Passwort 

string 

Das zum Benutzernamen gehörende Passwort 

guest

conntype 

TCPor SSL 

Der Protokolltyp für die Verbindung mit dem Broker 

TCP

trustedhost 

true/false 

Ob der Broker-Host vertrauenswürdig ist (gilt nur bei conntype=SSL) 

true

certdbpath 

string 

Der vollständige Pfad zu dem Verzeichnis, das das NSS-Zertifikat und die Schlüsseldatenbankdateien enthält 

nicht festgelegt 

clientid 

string 

Nur für dauerhafte JMS-Abonnements erforderlich 

nicht festgelegt 

reconnects 

Integer 

Die Anzahl der erneuten Verbindungsversuche für den Broker (0 bedeutet: keine erneute Verbindung) 

0

Programmierungsbeispiele

Um eine Anwendung zu programmieren, die verteilte Transaktionen verwendet, erstellen Sie einen serverseitigen Dienst, der in der Umgebung des Transaktionsmanagers ausgeführt wird, und einen clientseitigen COde, der die Transaktionsmanager-APIs aufruft. Message Queue 4.2 bietet Programmierungsbeispiele, die auf dem Tuxedo-Transaktionsmanager beruhen. Diese Beispiele befinden sich im Beispielprogrammverzeichnis auf den einzelnen Plattformen im Verzeichnis ./C/tuxedo.

Dieses Verzeichnis beinhaltet eine README-Datei, die erläutert, wie Tuxedo zur Verwendung des Message Queue-Ressourcenmanagers eingerichtet wird und wie die folgenden Beispielprogramme in der Tuxedo-Umgebung erstellt werden können:

Beispielprogramm 

Beschreibung 

jmsserver.c

Implementiert Tuxedo-Dienste, die Nachrichten mithilfe von Message Queue senden und empfangen. 

jmsclient_sender.c

Tuxedo-Client, der den Nachrichtenproduktionsdienst im Programm jmsserver.c verwendet.

jmsclient_receiver.c

Tuxedo-Client, der den Nachrichtenempfangsdienst im Programm jmsserver.c verwendet.

async_jmsserver.c

Implementiert einen Tuxedu-Dienst, der asynchron Nachrichten mithilfe von Message Queue konsumiert. 

jmsclient_async_receiver.c

Tuxedo-Client, der den asynchronen Nachrichtenempfangsdienst im Programm jmsserver.c verwendet.