Sistema de mensagens ponto a ponto em vários barramentos
O sistema de mensagens ponto a ponto usa destinos de fila, em que cada destino representa uma fila de mensagens.
Um destino de fila de integração de serviço está localizado em um membro de barramento específico (servidor de aplicativos ou cluster de servidores). Quando um produtor envia uma mensagem para um destino de fila, o barramento de integração de serviços entrega a mensagem para um mecanismo do sistema de mensagens nesse membro do barramento. O mecanismo do sistema de mensagens entrega, então, a mensagem para o consumidor; se necessário, o mecanismo do sistema de mensagens enfileirará a mensagem até que um consumidor esteja pronto para recebê-la.
Os aplicativos poderão enviar mensagens para um destino de fila em um barramento remoto, contanto que haja uma conexão configurada entre os barramentos. É possível configurar um barramento que se conecta e que troca mensagens com outras redes do sistema de mensagens. Para fazer isso, você deve configurar um barramento externo. Uma conexão de barramento externo encapsula informações relacionadas à rede do sistema de mensagens remoto, como o tipo de barramento externo e se os aplicativos do sistema de mensagens são permitidos para enviar mensagens para o barramento externo. O barramento local conhece o barramento de destino por meio de uma conexão do barramento externo. Se o barramento que estiver conectado diretamente ao barramento local não contiver o destino especificado, serão usados mais links de barramento de integração de serviços para transmitir a mensagem para o próximo barramento na rota para o barramento de destino. Quando a mensagem entra no barramento de destino, esse barramento tenta distribuir a mensagem para o destino desejado.
Para enviar mensagens para um destino que esteja definido em um barramento externo, um aplicativo especifica o nome do barramento (isto é, o barramento externo) e o nome do destino no objeto de destino JMS (fila ou tópico). Não é necessário configurar nenhum objeto de destino no barramento local. A integração de serviço usa a definição do barramento externo que está configurado no barramento local, isto é, a conexão do barramento externo. Essa definição inclui valores-padrão para os atributos de destino, como a qualidade de serviço padrão. Esses valores-padrão aplicam-se a todos os destinos desse barramento externo.
É possível configurar um destino de fila como um destino externo ou um destino de alias, conforme descrito nas informações sobre destinos de barramento.
Quando um aplicativo envia mensagens para um destino e um destino externo ou destino de alias não está configurado, os padrões de destino são derivados dos padrões de destino especificados para a conexão do barramento externo.
- A integração de serviço roteia a mensagem para o Barramento 2 usando a definição no Barramento 1 do barramento externo Barramento 2.
- O Barramento 2 entrega a mensagem para targetQueue usando a definição no Barramento 2 de sua fila local targetQueue.
Neste exemplo, a integração de serviço no Barramento 1 usa atributos de sua definição do barramento externo, Barramento 2, como padrões para seu destino targetQueue no barramento externo. A integração de serviço não pode usar as informações de configuração com escopo definido para um barramento externo. Por exemplo, a integração de serviço no Barramento 1 não reconhece a definição de targetQueue do Barramento 2.
Na figura a seguir, um aplicativo JMS conectado ao Barramento 1 cria um produtor para uma fila no Barramento 2. O aplicativo usa JNDI para obter um objeto de destino JMS, que identifica a fila do barramento de integração de serviço no Barramento 2. Um aplicativo pode obter um destino JMS de outras maneiras, por exemplo, da propriedade JMSReplyTo de uma mensagem JMS.

- O aplicativo JMS usa a consulta do JNDI para obter um destino JMS.
- O aplicativo JMS envia a mensagem para o destino JMS; esse é um fluxo de mensagens lógicas.
- O barramento local, Barramento 1, transfere a mensagem do aplicativo de envio para o barramento externo, Barramento 2, que contém a determinação de destino. O Barramento 1 aplica as propriedades padrão e as funções de destino da conexão do barramento externo.
- O barramento externo coloca a mensagem na determinação de destino.
Apenas o barramento que hospeda esse destino sabe que existe um destino. Para que um aplicativo envie mensagens com êxito para um destino em um barramento externo, você deve assegurar-se de que o destino exista; o barramento local não pode verificar se ele existe. Se uma mensagem chegar por meio do link do barramento de integração de serviços em um destino que não existe no barramento externo, a mensagem será roteada usando a configuração da manipulação de exceção do link do barramento de integração de serviços de recebimento.