Fábricas de conexiones de JMS
Una fábrica de conexiones es un objeto que un cliente JMS (un programa JMS que utiliza la API de JMS) utiliza para crear una conexión con un proveedor JNDI (un proveedor de mensajería como, por ejemplo, IBM® MQ).
Puede utilizar IBM MQ Explorer para crear fábricas de conexiones y para definir los parámetros de conexión que la fábrica de conexiones utilizará para crear conexiones.
Las fábricas de conexiones, al igual que los destinos, son objetos administrados y se almacenan en un espacio de nombres JNDI, que es una ubicación definida dentro del servicio de denominación y directorios. El contexto inicial define la raíz del espacio de nombres JNDI. En IBM MQ Explorer, todas las fábricas de conexiones se almacenan en carpetas de fábricas de conexiones en el contexto y los subcontextos adecuados, tal como se muestra en la figura siguiente.
En la figura, la fábrica de conexiones denominada Fábrica de conexiones 1
se almacena en la carpeta Fábricas de conexiones del contexto inicial denominado Contexto inicial del sistema de archivos
.
Cuando define una fábrica de conexiones, debe seleccionar el proveedor de mensajería que se utiliza como proveedor JMS (por ejemplo, IBM MQ o Real-time); una fábrica de conexiones sólo puede crear conexiones con ese proveedor de mensajería. Para que el cliente JMS cree conexiones con un proveedor de mensajería distinto, debe crear una nueva fábrica de conexiones y especificar el proveedor de mensajería. Real-Time Transport no está disponible en IBM MQ 8.0. Si está utilizando IBM MQ 8.0 puede definir Real-Time Transport, pero éste falla al intentar crear una conexión.
Fábricas de conexiones independientes del dominio
Hay dos dominios de mensajería: el dominio de mensajería punto a punto y el dominio de mensajería de publicación/suscripción. Puede crear una fábrica de conexiones para crear conexiones específicamente para mensajería punto a punto (utilizando la interfaz QueueConnectionFactory) o para mensajería de publicación/suscripción (utilizando la interfaz TopicConnectionFactory). Desde JNDI, también puede crear fábricas de conexiones que sean independientes del dominio y que, por tanto, puedan utilizarse tanto para la mensajería punto a punto como para la mensajería de publicación/suscripción (utilizando la interfaz ConnectionFactory). Si desea ver más información, consulte Crear una fábrica de conexiones.
Si piensa utilizar la aplicación JMS sólo en mensajería punto a punto o sólo en mensajería de publicación/suscripción, puede seleccionar el dominio de mensajería específico cuando cree la fábrica de conexiones, y se creará una fábrica de conexiones específica de dominio.
Sin embargo, si desea realizar trabajos tanto punto a punto como de publicación/suscripción bajo la misma transacción, puede crear una fábrica de conexiones independiente de dominio. Por ejemplo, es posible que desee que una aplicación JMS se suscriba a un tema (mensajería de publicación/suscripción) y, luego, cuando la aplicación JMS reciba un mensaje específico, envíe otro mensaje a una cola (mensajería punto a punto). Es difícil realizar de forma fiable trabajo punto a punto y de publicación/suscripción bajo la misma transacción si utiliza fábricas de conexiones específicas de dominio: debe crear una fábrica de conexiones aparte para cada dominio de mensajería, lo que significa que el trabajo punto a punto se realiza bajo una transacción controlada por la sesión QueueSession y el trabajo de publicación/suscripción se realiza bajo una transacción controlada por la sesión TopicSession. Es difícil asegurar que se han realizado o se han restituido las dos acciones, de envío y recepción.
En lugar de crear una fábrica de conexiones específica de dominio para el trabajo punto a punto y otra fábrica de conexiones específica de dominio para el trabajo de publicación/suscripción, puede crear una sola fábrica de conexiones independiente de dominio para ambos trabajos. Esto significa que la fábrica de conexiones crea una conexión, que crea una sesión. La sesión crea un MessageConsumer de un tema y un MessageProducer en una cola. Cuando la aplicación JMS recibe el mensaje publicado, el mensaje siguiente se puede enviar a la cola bajo una transacción en la misma sesión; por tanto, ambas operaciones pueden confirmarse o restituirse como una sola unidad de trabajo.
Puede obtener información adicional consultando Utilización de clases IBM MQ para JMS en IBM Knowledge Center.