Há um conjunto de verificações que você pode executar para investigar o motivo de mensagens não estarem sendo consumidas em um destino de um barramento de integração de serviços, quando as mensagens estão sendo roteadas por meio de um ponto de mensagem remoto e o aplicativo de consumo está em execução.
Sobre Esta Tarefa
Você deverá assumir essa tarefa como parte de
Investigating why point-to-point messages are not being consumed ou de
Investigating why publish/subscribe messages are not arriving at a subscription. Esta tarefa explica como
investigar o fluxo de mensagens em um cenário no qual as mensagens estão sendo
roteadas através de um ponto de mensagem remoto e o aplicativo de consumo é iniciado.
Os
diagramas a seguir ilustram dois cenários possíveis. Na Figura 1, um barramento contêm três mecanismos do sistema de mensagens,
ME1, ME2 e ME3. O aplicativo de produção está conectado ao ME1 e o aplicativo de consumo está conectado ao ME3.
As mensagens são roteadas de ME1 para ME3 por meio de ME2 e são consumidas de ME3. Esse cenário referes-se apenas ao ME2 e ao ME3. ME3 hospeda um ponto de mensagem remoto que representa
o ponto de mensagem hospedado por ME2. Na Figura 2, ME2 e ME3 hospedam pontos de
publicação que são representados por pontos de publicação remotos em
ME1, em que o aplicativo de produção está conectado. O aplicativo de assinatura B está conectado ao ME3
e recebe mensagens indiretamente do ME1, por meio de uma assinatura no ME2. Um ponto
de assinatura remoto em ME 3. Esses mecanismos do sistema de mensagens são referidos
nas etapas a seguir.Figura 1. Consumo de Mensagens Ponto a Ponto Usando um Ponto de Mensagens Remoto
Figura 2. Sistema de Mensagens de Publicação/Assinatura Usando um Ponto de Mensagens Remoto 
Procedimento
- Se você tiver seguido as etapas em Investigating why point-to-point messages are not being consumed ou Investigating why publish/subscribe messages are not arriving at a subscription antes de iniciar essa
tarefa, deverá ter exibida uma lista de pedidos de mensagens. Verifique se a lista contém um pedido com um seletor que corresponde a uma mensagem
disponível no ponto de mensagem em ME2. Se não houver um pedido desse tipo na lista, o
aplicativo de consumo não está sendo consumido; verifique o aplicativo de consumo a
procura de erros:
- Verifique se o consumidor foi iniciado.
- Verifique se o aplicativo está tentando consumir ativamente:
- Se o aplicativo utiliza um consumidor assíncrono, verifique se o consumidor assíncrono está registrado.
- Se o aplicativo for síncrono, verifique se o consumidor está atualmente em um estado "receber com espera" (isso pode requerer uma modificação no aplicativo para estender o prazo que o aplicativo aguarda por uma mensagem).
- Verifique o estado do pedido ativo:
- Se o estado for Valor, uma mensagem foi recuperada e retornada ao aplicativo de
consumo, mas o consumo da mensagem ainda não foi concluído. Verifique se o aplicativo
de consumo está processando corretamente todas as mensagens que chegam,
por exemplo, verifique se o aplicativo está consolidando a transação utilizada para
consumir a mensagem.
- Se o estado for Rejeitado, uma mensagem foi recuperada e retornada ao aplicativo de
consumo, que então rejeitou a mensagem por alguma razão. Geralmente, isso significa que o
aplicativo de consumo efetuou rollback da operação de consumo ou uma transação associada.
- Se o estado for Confirmado, uma mensagem foi retornada para o pedido
e consumida por um aplicativo. Verifique se a mensagem foi recebida pelo aplicativo correto e se não
foi consumida por um aplicativo diferente.
- Se o estado for Pedido, o pedido de mensagem foi enviado para ME2; continue
na próxima verificação para investigar o motivo pelo qual uma mensagem não foi retornada.
- Observe o ID do Pedido. No ME2, exiba os pontos de
mensagens para o destino e visualize os pedidos de mensagem de ME3. Verifique se há um pedido que corresponda ao ID do pedido no ME3. Se não houver pedido
correspondente, o ME2 não terá conhecimento do pedido. Check that the two messaging engines
can communicate with each other, see Service integration troubleshooting: Checking the communication between two messaging engines in a bus.
- Verifique o estado do pedido:
O que Fazer Depois
Caso ainda tenha problemas, entre em contato com o representante de serviço ao cliente IBM.