Cómo direccionar destinos de bus y las colas IBM MQ
Para comprender cómo acceder a un destino de bus de integración de servicios desde IBM MQ y una cola IBM MQ desde un bus de integración de servicios, es importante comprender los diferentes convenios que rigen el direccionamiento de estos recursos.
- nombre de gestor de colas
- nombre de cola
- nombre de bus
- nombre de destino (identificador)
En IBM MQ, el nombre del gestor de colas y el nombre de cola están limitados a 48 caracteres cada uno, y queda restringido el uso de determinados caracteres. Para obtener más información, consulte Restricciones de nombres de IBM MQ. Los equivalentes del bus de integración de servicios no tienen estas restricciones, por lo tanto, (por ejemplo) los mensajes de una aplicación IBM MQ enviados a un destino de bus con un nombre de más de 48 caracteres deben tener algún medio de utilizar el nombre corto (utilizado en IBM MQ) para poder direccionar el nombre largo (utilizado en el bus de integración de servicios). El bus de integración de servicios utiliza un destino de alias para la correlación entre el nombre corto y el nombre largo. Del mismo modo, se puede utilizar también un alias para enviar un mensaje desde una aplicación WebSphere Application Server utilizando un nombre largo (de más de 48 caracteres) y direccionarlo a una cola IBM MQ. Para obtener más información acerca de los destinos de alias, consulte Destinos foráneos y destinos de alias.
Anotación cola@gestorColas de la integración de servicio para las colas IBM MQ
Cuando la integración de servicios envía un mensaje a través de un Enlace de IBM MQ, debe saber el bus foráneo que corresponde al gestor de colas de pasarela o al grupo de compartimiento de colas; y cuando se ha definido la cola de envío en un gestor de colas o grupo de compartimiento de colas diferente (no la pasarela), la integración de servicios debe saber la ubicación de la cola de envío, de modo que pueda guardar el nombre correcto en el campo MQXQH RemoteQMgrName. Un modo de conseguirlo es definir dos buses foráneos, un bus conectado indirectamente (en el que se ha definido la cola) y un bus conectado directamente (la pasarela).
La figura siguiente muestra un ejemplo de esto. En la figura, la cola de destino para un mensaje es Q2 en el gestor de colas QM2. La configuración de integración de servicios en el bus local define QM2 como un bus foráneo conectado indirectamente y QM1 como el bus intermedio conectado directamente. Define Q2 como un destino foráneo con el nombre de bus QM2 y el nombre de destino (identificador) Q2. La configuración de integración de servicios para el bus local no incluye ninguna información acerca de la conexión entre QM1 y QM2.

El acceso a una cola de IBM MQ foránea de este modo funciona perfectamente bien. No obstante, cuando hay un gran número de gestores de colas o de grupos de compartición de cola que se conectan al bus de integración de servicios mediante una pasarela, es posible que no le resulte práctico definir cada uno de ellos como un bus foráneo conectado indirectamente. Por lo tanto, la integración de servicios da soporte al siguiente formato de nombre de destino especial para las colas IBM MQ que incluye tanto el nombre de colar como el nombre de gestor de colas unidos por el signo de arroba (@): cola@gestorColas. Utilizando este formato especial, no es necesario que defina un bus foráneo conectado indirectamente separado para la integración de servicios ya que el nombre forma parte del nombre de destino de integración de servicios.
La figura siguiente muestra un ejemplo de esto. En la figura, la cola de destino para un mensaje es Q2 en el gestor de colas QM2. La configuración de integración de servicios en el bus local no define QM2 como un bus foráneo. Define Q2 como destino foráneo con el nombre de bus QM1 y el nombre de destino (identificador) Q2@QM2. La configuración de integración de servicios para el bus local no incluye ninguna información acerca de la conexión entre QM1 y QM2.

Correlación automática del campo JMSReplyTo de un mensaje JMS
Hay dos campos en la API de JMS que se utilizan para compartir información sobre el destino al que se envía un mensaje (JMSDestination) y el destino a donde deben enviarse las respuestas (JMSReplyTo). El campo JMSReplyTo de una mensaje JMS que se pasa de un bus de integración de servicios a IBM MQ (o de IBM MQ a un bus de integración de servicios) se correlaciona de forma automática, de forma que una aplicación consumidora de IBM MQ puede responder a la aplicación WebSphere Application Server original.