Configure el flujo de mensajes para recibir mensajes o generar su salida bajo transacciones coordinadas.
Cuando se incluye un nodo utilizando un transporte JMS en un flujo de mensajes, tal como el nodo JMSInput o SOAPInput cuando se utiliza el transporte JMS, el valor que se establece para la Modalidad de transacción define si los mensajes se reciben bajo punto de sincronismo.
- Si establece esta propiedad en Sí
con la propiedad de flujo Transacción
seleccionada, el mensaje se recibe bajo la coordinación de puntos de sincronismo
externos; es decir, dentro de una unidad de trabajo de
WebSphere MQ. Cualquier mensaje enviado posteriormente por un nodo de salida en la misma
instancia del flujo de mensajes se coloca bajo punto de sincronismo, a menos que el nodo de salida modifique este valor
explícitamente.
- Si establece esta propiedad en Sí
con la propiedad de flujo Transacción
coordinada no seleccionada, el mensaje se recibe bajo el control de punto de
sincronismo local del nodo. Cualquier mensaje enviado posteriormente por un nodo de salida en el flujo no se coloca bajo punto de sincronismo local,
a menos que un nodo de salida determinado especifique que el mensaje debe colocarse bajo punto de sincronismo local.
- Si establece esta propiedad en No, el mensaje no se recibe bajo punto
de
sincronismo. Cualquier mensaje enviado posteriormente por un nodo de salida en el flujo no se coloca bajo punto de sincronismo,
a menos que un nodo de salida determinado especifique que el mensaje debe colocarse bajo punto de sincronismo.
Para recibir mensajes bajo punto de sincronismo externo, deber efectuar pasos de configuración adicionales que sólo deben aplicarse la primera ver que se despliega un nodo específico mediante el transporte JMS al intermediario para un proveedor JMS específico.
- En sistemas distribuidos, el coordinador de punto de sincronismo externo para el intermediario es
WebSphere MQ. Antes de desplegar un flujo de mensajes en el
que la propiedad Modalidad de transacción
esté establecida en Global o
Sí, y esté diseñado para utilizar
transacciones coordinadas XA, modifique el archivo .ini del
gestor de colas para incluir definiciones adicionales para cada gestor de recursos de
proveedor JMS que participe en transacciones coordinadas globalmente.
En Windows: - Inicie WebSphere MQ Explorer.
- Pulse con el botón derecho del ratón en el nombre del gestor de colas
en el panel izquierdo y pulse Propiedades.
- Pulse Gestores de recursos XA en el panel
izquierdo.
- Pulse Agregar....
- Establezca las opciones tal como se indica a continuación:
- Establezca Name en cualquier valor.
- En Windows en sistemas x86,
establezca la propiedad SwitchFile en dir_instalación\bin\JMSSwitch.dll.
En Windows en sistemas x86-64,
establezca la propiedad SwitchFile en JMSSwitch.dll.
- Establezca la propiedad XAOpenString en un valor serie tal como se indica a continuación: Contexto inicial,JNDI
ubicación,Parámetros_opcionales.
- Establezca la propiedad ThreadOfControl en Thread.
- En Windows en sistemas x86-64 únicamente, copie el archivo de conmutación JMSSwitch32.dll en el subdirectorio \exits en el directorio de instalación de WebSphere MQ y renómbrelo por JMSSwitch.dll. Copie el archivo de conmutación JMSSwitch.dll en el subdirectorio \exits64 del directorio de instalación WebSphere MQ.
Para obtener más información, consulte la sección System Administration Guide de Centro de información en línea de WebSphere MQ Versión 7.

En los sistemas Linux y
UNIX, añada una sección al archivo .ini del gestor de colas
para cada proveedor JMS. Por ejemplo:
XAResourceManager:
Name=Nombre_Proveedor_Jms
SwitchFile=/dir_instalación/bin/ JMSSwitch.so
XAOpenString=Contexto inicial,ubicación JNDI,parámetros_opcionales
ThreadOfControl=THREAD
donde:
- Name
- es un nombre definido por la instalación que identifica un gestor de recursos de proveedor JMS.
- SwitchFile
- es la vía de acceso del sistema de archivos a la biblioteca JMSSwitch que se proporciona en el directorio bin del intermediario.
XAOpenString
puede tener los siguientes valores:
- Contexto inicial es el valor que se establece en la propiedad Fábrica de contexto inicial del nodo JMSInput.
- Ubicación de JNDI es el valor que se establece en la propiedad Enlaces JNDI de ubicación del nodo JMSInput. Este valor debe incluir un prefijo de URL soportado que tiene un manejador de URL que está disponible en la vía de acceso de clases.
Los parámetros siguientes son opcionales:
- Principal LDAP
coincide con el valor que se establece para el intermediario utilizando los mandatos
mqsicreatebroker o
mqsichangebroker.
- Credenciales LDAP
coincide con el valor que se establece para el intermediario utilizando los mandatos
mqsicreatebroker o
mqsichangebroker.
- Nombre de fábrica de conexión de
recuperación es la fábrica de conexión administrada
JNDI que se define en el archivo de enlaces. Si no se especifica un valor,
debe añadir al archivo de enlaces un valor predeterminado para
recoverXAQCF. En cualquiera de los casos, la fábrica de conexión de recuperación se debe definir como
una fábrica de conexión de cola XA para el proveedor JMS que está asociado con la
Fábrica de contexto inicial.
Los parámetros opcionales
están separados por coma y son posicionales.
Por consiguiente, los parámetros que faltan deben representarse con una coma. Por ejemplo:
com.sun.jndi.fscontext.RefFSContextFactory,file:/C:/webservices/SOAP/JMS/JNDIXA,,,QCF
- Actualice la variable de entorno CLASSPATH de
Java™
para que el gestor de colas del intermediario incluya una referencia a
xarecovery.jar; por ejemplo:
dir_instalación/classes/xarecovery.jar
- Actualice la variable de entorno PATH de Java para que el gestor de colas del intermediario apunte al directorio bin
en el que se encuentra el archivo de conmutación; por ejemplo:
dir_instalación/bin
Finalmente, asegúrese de que ha seguido los pasos de configuración siguientes:
- En el flujo de mensajes, asegúrese de que la propiedad
coordinada está habilitada utilizando el editor de
archivador de WebSphere Message Broker.
- Asegúrese de que cada nodo que necesita formar parte de la transacción XA esté establecido en el nodo de
transacción global.
- Asegúrese de que el ID de servicio que se utiliza para el intermediario y el gestor de colas es el mismo ID de usuario.
- Asegúrese de que los objetos de la fábrica de conexión JNDI que los nodos JMS utilizan para una
transacción global están configurados para ser el tipo MQXAConnectionFactory,
MQXAQueueConnectionFactory o MQXATopicConnectionFactory.
- Si crea los enlaces utilizando WebSphere Message Broker Explorer, asegúrese de que la
opción Soporte de transacciones XA se comprueba cuando
defina la fábrica de conexiones.
- Si crea los enlaces utilizando JMSAdmin, utilice el mandato DEF
XAQCF o DEF XATCF, en lugar de DEF
QCF o DEF TCF, cuando defina la fábrica de conexiones.
Para obtener más información, consulte la sección System Administration Guide de Centro de información en línea de WebSphere MQ Versión 7.
En z/OS, el gestor de puntos de sincronismo externo es RRS
(Resource Recovery Services - Servicios de recuperación de recursos). El único proveedor JMS que se soporta en z/OS es JMS de WebSphere MQ. La única opción de transporte que se soporta para JMS de
WebSphere MQ en
z/OS es la opción de enlace. El control de punto de sincronismo para el
proveedor JMS se gestiona con la coordinación de puntos de sincronismo RRS del gestor de colas del intermediario. No necesita modificar el archivo .ini .