Notas de la version de Sun Java System Message Queue 4.2

Compatibilidad C-API con transacciones distribuidas

Según el modelo de transacciones distribuidas X/Open, la compatibilidad con transacciones distribuidas se basa en un administrador de transacciones distribuidas que supervisa y administra las operaciones que realizan uno o más administradores de recursos. En Información de resolución de problemas de 4.2, la C-API de Message Queue es compatible con la interfaz XA (entre un administrador de transacciones distribuidas y Message Queue como administrador de recursos compatibles con XA), lo que permite a los clientes de C-API de Message Queue funcionar en un entorno de procesamiento de transacciones distribuidas (tales como BEA Tuxedo) con el fin de participar en transacciones distribuidas.

Esta compatibilidad con transacciones distribuidas cuenta con las siguientes nuevas funciones de C-API (y nuevos parámetros y códigos de error) que se utilizan para implementar la especificación de la interfaz XA:

MQGetXAConnection()
MQCreateXASession()

Si la aplicación de un cliente de C se va a utilizar en el contexto de una transacción distribuida, debe obtener una conexión a través de MQGetXAConnection() y crear una sesión para producir y consumir mensajes mediante MQCreateXASession(). . El inicio, la confirmación y la anulación de cualquier transacción distribuida se administra a través de API suministradas a través del administrador de transacciones distribuidas.

Información pública

La especificación de la interfaz XA de X/Open requiere la siguiente información pública con respecto al administrador de recursos compatibles con XA de Message Queue:

Los siguientes pares de valores/nombre son compatibles:

Tabla 1–6 Pares de valores/nombre del administrador de recursos de Message Queue

Nombre 

Valor 

Descripción 

Predeterminado 

dirección. 

host:port

El sistema:puerto del servicio Portmapper del agente. 

localhost:7676

username 

string 

Nombre de usuario para conectarse al agente 

guest

contraseña 

string 

Contraseña del nombre de usuario 

guest

conntype 

TCPor SSL 

Tipo de protocolo de la conexión con el agente 

TCP

trustedhost 

true/false 

Si el sistema del agente es de confianza (sólo aplicable a conntype=SSL) 

true

certdbpath 

string 

Ruta completa hasta el directorio que contiene el certificado NSS y los archivos de la base de datos clave 

no definido 

clientid 

string 

Requerido únicamente para suscripciones duraderas JMS 

no definido 

reconecta 

entero 

El número de intentos de reconexión al agente (0 significa que no hay reconexiones) 

0

Ejemplos de programación

Para programar una aplicación que utilice transacciones distribuidas, crea un servicio del lado del servidor que se ejecuta en el entorno del administrador de transacciones y el código del lado del cliente que llama a las API del administrador de transacciones. Message Queue 4.2 incluye ejemplos de programación basados en el administrador de transacciones de Tuxedo. Estos ejemplos están ubicados en el directorio de programas de ejemplo de cada plataforma dentro del directorio ./C/tuxedo.

Este directorio incluye un archivo README que explica cómo configurar Tuxedo para utilizar el administrador de recursos de Message Queue y cómo crear los siguientes programas de ejemplo en el entorno de Tuxedo:

Programa de ejemplo 

Descripción 

jmsserver.c

Implementa los servicios de Tuxedo que envían y reciben mensajes a través de Message Queue. 

jmsclient_sender.c

Cliente de Tuxedo que utiliza el servicio de producción de mensajes en el programa jmsserver.c .

jmsclient_receiver.c

Cliente de Tuxedo que utiliza el servicio de recepción de mensajes en el programa jmsserver.c .

async_jmsserver.c

Implementa un servicio de Tuxedo que consume de forma asíncrona mensajes a través de Message Queue. 

jmsclient_async_receiver.c

Cliente de Tuxedo que utiliza el servicio de consumo de mensajes asíncrono del programa async_jmsserver.c.