Mensajería punto a punto a través de varios buses
La mensajería punto a punto utiliza destinos de cola, donde cada destino de cola representa una cola de mensajes.
Un destino de cola de integración de servicios se localiza en un miembro de bus determinado (servidor de aplicaciones o clúster de servidores). Cuando un productor envía un mensaje al destino de cola, el bus de integración de servicios entrega el mensaje a un motor de mensajería en dicho miembro de bus. Entonces el motor de mensajería entrega el mensaje a un consumidor; si es necesario, el motor de mensajería pone en cola el mensaje hasta que un consumidor esté preparado para recibirlo.
Las aplicaciones pueden enviar mensajes a un destino de cola en un bus remoto, siempre que se haya configurado una conexión entre los buses. Puede configurar un bus para conectarse e intercambiar mensajes con otras redes de mensajería. Para hacerlo, debe configurar una conexión de bus foráneo. Una conexión de bus foráneo encapsula información relacionada con la red de mensajería remota, como el tipo de bus foráneo y si las aplicaciones de mensajería pueden enviar mensajes al bus foráneo. El bus local conoce el bus del destino a través de una conexión de bus foráneo. Si el bus que está conectado directamente al bus local no mantiene el destino especificado, se utilizan más enlaces de bus de integración de servicios para pasar el mensaje al bus siguiente en la ruta al bus de destino. Cuando el mensaje entra en el bus de destino, ese bus intenta entregar el mensaje al destino pretendido.
Para enviar mensajes a un destino que está definido en un bus foráneo, una aplicación especifica el nombre de bus (es decir, el bus foráneo) y el nombre de destino en el objeto de destino de JMS (cola o tema). No es necesario configurar ningún objeto de destino en el bus local. La integración de servicios utiliza la definición del bus foráneo que se ha configurado en el bus local, es decir, la conexión de bus foráneo. Esta definición incluye los valores predeterminados para los atributos de destino, por ejemplo la calidad de servicio predeterminada. Estos valores predeterminados se aplican a todos los destinos de dicho bus foráneo.
Puede configurar un destino de cola como destino foráneo o destino de alias, como se describe en la información acerca de los destinos de bus.
Cuando una aplicación envía mensajes a un destino y no se ha configurado un destino foráneo o un destino de alias, los valores predeterminados de destino se derivan de los valores predeterminados de destino que se especifican en la conexión de bus foráneo.
- La integración de servicios direcciona el mensaje al Bus 2 utilizando la definición del Bus 1 del bus foráneo Bus 2.
- El Bus 2 entrega el mensaje a targetQueue mediante la definición en el Bus 2 de su cola local targetQueue.
En este ejemplo, la integración de servicios en el Bus 1 utiliza los atributos de su definición del bus foráneo, Bus 2, como valores predeterminados para su destino targetQueue en el bus foráneo. La integración de servicios no puede utilizar la información de configuración cuyo ámbito es un bus foráneo. Por ejemplo, la integración de servicios en el Bus 1 no conoce la definición de targetQueue de Bus 2.
En la figura siguiente, una aplicación JMS conectada al Bus 1 crea un generador para una cola en el Bus 2. La aplicación utiliza JNDI para obtener un objeto de destino JMS, que identifica la cola del bus de integración de servicios en el Bus 2. Una aplicación puede obtener un destino JMS de otras formas, por ejemplo, a partir de la propiedad JMSReplyTo de un mensaje JMS.

- La aplicación JMS utiliza la búsqueda JNDI para obtener el destino JMS.
- La aplicación JMS envía el mensaje al destino JMS; éste es un flujo de mensajes lógico.
- El bus local, Bus 1, transfiere el mensaje de la aplicación emisora al bus foráneo, Bus 2, que contiene el destino. El Bus 1 aplica las propiedades predeterminadas y los roles de destino forman la conexión de bus foráneo.
- El bus foráneo coloca el mensaje en el destino.
El hecho de que existe un destino sólo lo sabe el bus que contiene dicho destino. Para que una aplicación envíe mensajes a un destino en un bus foráneo satisfactoriamente, debe asegurarse de que el destino exista; el bus local no puede verificar que existe el destino. Si un mensaje llega a través del enlace de bus de integración de servicios para un destino que no existe en el bus foráneo, el mensaje se direcciona utilizando la configuración del manejo de excepciones del enlace de bus de integración de servicios receptor.