Notes de Version de Sun Java System Message Queue 4.2

Prise en charge de C-API pour les transactions distribuées

Selon le modèle de transaction distribuée X/Open, la prise en charge pour les transactions distribuées dépend d'un gestionnaire de transactions distribuées qui suit et gère les opérations exécutées par un ou plusieurs gestionnaires de ressources. Dans Message Queue 4.2, le C-API de Message Queue prend désormais en charge l'interface XA (entre un gestionnaire de transactions distribuées et Message Queue sous forme de gestionnaire de ressources conforme à XA), permettant aux clients C-API de Message Queue s'exécutant dans un environnement de traitement des transactions distribuées (comme BEA Tuxedo) de participer aux transactions distribuées.

Cette prise en charge des transactions distribuées se compose des nouvelles fonctions C-API suivantes (et de nouveaux paramètres et codes d'erreur) utilisées pour implémenter la spécification de l'inferface XA :

MQGetXAConnection()
MQCreateXASession()

Si une application client C doit être utilisée dans le contexte d'une transaction distribuée, alors elle doit obtenir une connexion à l'aide de MQGetXAConnection() et créer une session pour produire et consommer des messages à l'aide de MQCreateXASession(). . Le lancement, la validation et la répétition de toute transaction distribuée sont gérés via des API fournies par le gestionnaire de transactions distribuées.

Informations publiques

La spécification de l'interface X/Open XA requiert les informations publiques suivantes concernant le gestionnaire de ressources conforme à XA de Message Queue :

Les paires de nom/valeur suivantes sont prises en charge :

Tableau 1–6 Paires de nom/valeur du gestionnaire de ressources de Message Queue

Nom 

Valeur 

Description 

Par défaut 

adresse 

hôte:port

L'hôte :port du service Portmapper du courtier. 

localhost:7676

Identifiant (username) 

chaîne 

L'identifiant (username) de connexion au courtier 

hôte (guest)

mot de passe (password) 

chaîne (string) 

Le mot de passe de l'identifiant 

hôte

conntype 

TCP ou SSL 

Le type de protocole de la connexion au courtier 

TCP

Hôte sécurisé 

true/false 

détermine si l'hôte du courtier est sécurisé ou non (uniquement applicable pour conntype=SSL) 

true

certdbpath 

chaîne 

Le chemin complet vers le répertoire qui contient un certificat NSS et des fichiers de base de données clé 

non défini 

clientid 

chaîne 

Requis uniquement pour les abonnements JMS durables 

non défini 

se reconnecte 

entier 

Le nombre de tentatives de reconnexion au courtier (0 signifie aucune reconnexion) 

0

Exemples de programmation

Pour programmer une application utilisant des transactions distribuées, vous créez un service côté serveur qui s'exécute dans l'environnement du gestionnaire de transactions un code côté client appellant les API du gestionnaires de transactions. Message Queue 4.2 fournit des exemples de programmation sur la base du gestionnaire de transactions Tuxedo. Ces exemples sont situés dans le répertoire de programmes d'exemples sur chaque plate-forme, dans le répertoire ./C/tuxedo.

Ce répertoire comprend un fichier README qui explique comment paramétrer Tuxedo pour utiliser le gestionnaire de ressources de Message Queue et comment développer les programmes d'exemples suivants dans l'environnement Tuxedo :

Programme d'exemples 

Description 

jmsserver.c

Implémente les services Tuxedo qui envoient et reçoivent des messages à l'aide de Message Queue. 

jmsclient_sender.c

Client Tuxedo qui utilise le service de génération de messages dans le programme jmsserver.c .

jmsclient_receiver.c

Client Tuxedo qui utilise le service de réception de messages dans le programme jmsserver.c .

async_jmsserver.c

Implémente un service Tuxedo qui consomme de façon asynchrone des messages en utilisant Message Queue. 

jmsclient_async_receiver.c

Client Tuxedo qui utilise le service de consommation de messages asynchrones dans le programme jmsserver.c .