Restringindo Mensagens de Resposta para o Ponto de Fila Local para o Aplicativo de Pedido

Quando uma fila JMS identifica uma fila do barramento de integração de serviços como a fila de resposta, e essa fila do barramento de integração de serviços possui múltiplos pontos de fila, você poderá configurar uma fila JMS para restringir as mensagens ao ponto de fila que é local para o aplicativo que referenciou a fila JMS. Isso é feito para garantir que uma mensagem de resposta seja enviada para o ponto de fila apropriado de um membro de barramento do cluster.

Uma fila do barramento de integração de serviços terá múltiplos pontos de fila se pertencer a um membro de barramento do cluster com múltiplos mecanismos do sistema de mensagens (geralmente, para fornecer compartilhamento ou escalabilidade de carga de trabalho). O ponto de fila local é o ponto de fila no mecanismo do sistema de mensagem ao qual o aplicativo está conectado.

Exemplo: Uma fila JMS chamada Resposta é configurada para identificar a fila de barramento de integração de serviços que deve ser usada como a fila de resposta. A fila JMS é configurada para restringir as mensagens ao ponto de fila local (consulte as tarefas relacionadas para obter mais detalhes).

Figura 1. Um aplicativo JMS solicitante se conecta a um dos mecanismos do sistema de mensagens no membro de barramento do cluster
Um aplicativo JMS solicitante se conecta a um dos mecanismos de sistema de mensagens no membro do barramento do cluster.

O membro do barramento possui a fila do barramento de integração de serviços usada como a fila de resposta, de modo que cada mecanismo do sistema de mensagem possua um ponto de fila da fila de resposta configurada.

O aplicativo solicitante cria uma mensagem JMS e configura o destino JMSReplyTo para a fila JMS chamada Resposta. O aplicativo solicitante envia a mensagem de pedido para a fila do serviço usando outra fila JMS, chamada Serviço. (Serviço não requer configuração especial.) Por padrão, essa mensagem pode ser entregue a qualquer um dos pontos de fila pertencentes a Serviço, embora o usual é que ela siga para o ponto de fila local. No entanto, para ilustrar totalmente este exemplo, o sistema envia a mensagem para o outro ponto de fila.

Quando o aplicativo que envia a mensagem de pedido é conectado a um mecanismo do sistema de mensagem que também tem um ponto de fila para a fila de resposta do barramento de integração de serviços subjacente configurada para ele, e a opção é ativada, a identidade desse único ponto de fila da fila de resposta é incluída nas informações da fila JMSReplyTo na mensagem.

Figura 2. O aplicativo solicitante envia a mensagem de pedido para a fila do serviço usando outra fila JMS
O aplicativo solicitante envia a mensagem de solicitação para a fila do serviço usando outra fila JMS.

A mensagem de pedido é entregue à fila do serviço, Serviço, e é processada pelo serviço. Na conclusão, o serviço envia uma mensagem JMS para a fila de resposta identificada na mensagem de pedido (obtida usando o método JMS Message.getJMSReplyTo). Nesse ponto, o sistema de mensagens enviaria, por padrão, a mensagem de resposta para qualquer um dos pontos de fila de Resposta mas, como o solicitante definiu o escopo da fila de resposta como seu ponto de fila local, a resposta é enviada para o único ponto de fila do mecanismo do sistema de mensagens ao qual o solicitante estava conectado.

Figura 3. A Mensagem É Enviada ao Ponto da Fila Local do Aplicativo de Pedido, Mesmo Quando o Aplicativo de Resposta Tem um Ponto da Fila Local para a Fila de Resposta
A mensagem é enviada ao ponto de fila local do aplicativo solicitante, mesmo quando o aplicativo de resposta tem um ponto de fila local para a fila de respostas.

O sistema se comporta como se a fila do barramento de integração de serviços tivesse apenas um ponto de fila. Se o ponto de fila para o qual o escopo da resposta foi definido não estiver disponível, a mensagem não será enviada para nenhum outro ponto de fila.

Esta abordagem tem as seguintes vantagens:
  • As mensagens de resposta são sempre enviadas novamente para o ponto de fila que é local ao aplicativo de pedido. Isso reduz o roteamento da mensagem.
  • Aplicativos de pedido conectado a mecanismos do sistema de mensagem diferentes no membro do barramento podem usar a mesma definição de fila JMS. Isso permite o balanceamento de carga de trabalho dinâmica pelo cluster.
Esta abordagem tem as seguintes desvantagens:
  • Se o aplicativo solicitante pretender desconectar-se e reconectar-se antes de receber a mensagem de resposta, ele deverá saber a qual mecanismo de sistema de mensagens está se conectando, e deverá conectar-se ao mesmo quando se reconectar. Isso é obtido no connection factory JMS destinando o mecanismo do sistema de mensagem e usando o connection factory JMS para se conectar novamente. Essa configuração exclui o balanceamento de carga de trabalho.
  • O aplicativo de pedido deve estar conectado a um mecanismo do sistema de mensagem no membro do barramento que possui a fila de resposta do barramento de integração de serviços. Caso contrário, não haverá nenhum ponto de fila local para o escopo das mensagens de respostas e o sistema seguirá o comportamento de roteamento padrão de mensagens.

Refinamento

Para obter balanceamento de carga de trabalho de vários aplicativos de pedido em todos os mecanismos do sistema de mensagens no membro do barramento, enquanto permite que aplicativos se desconectem e reconectem, a seguinte configuração é necessária:
  • Múltiplas factories de conexão, cada uma destinada a um mecanismo de sistema de mensagens diferente.
  • Os aplicativos solicitantes a serem distribuídos pelas factories de conexão.

Ícone que indica o tipo de tópico Tópico de Conceito



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cjt0023_
Nome do arquivo: cjt0023_.html