Investigando o Motivo pelo qual as Mensagens de Publicação/Assinatura Não Estão Sendo Recebidas por uma Assinatura Através de um Ponto de Mensagem Remota

Há um conjunto de verificações que você pode executar para investigar o motivo de mensagens de publicação/assinatura não estarem sendo recebidas por uma assinatura em um barramento de integração de serviços, quando as mensagens estão sendo roteadas por meio de um ponto de mensagem remoto.

Antes de Iniciar

Siga estas etapas no Investigating why publish/subscribe messages are not arriving at a subscription, que contém as verificações preliminares e investigue as tarefas que você deve executar antes de continuar com esta tarefa.

Sobre Esta Tarefa

Conclua essa tarefa como parte 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 do sistema de mensagens de publicação/assinatura em que as mensagens estão sendo roteadas através de um ponto de mensagem remoto para uma assinatura não-durável. Os diagramas a seguir ilustram duas situações possíveis. As linhas pontilhadas nos diagramas indicam os relacionamentos entre os pontos de publicação, enquanto as linhas sólidas indicam o fluxo de mensagens. Na Figura 1, um barramento contêm três mecanismos do sistema de mensagens, ME1, ME2 e ME3. O aplicativo de publicação está conectado ao ME1 e os aplicativos de assinatura estão conectados a ME2 e ME3. O ME1 hospeda pontos de publicação remota que representam pontos de publicação hospedados pelo ME2 e ME3. Na Figura 2, um barramento contêm três mecanismos do sistema de mensagens, ME1, ME2 e ME3. O aplicativo de publicação está conectado ao ME1 e os aplicativos de assinatura estão conectados a ME2 e ME3. O ME1 hospeda pontos de publicação remota que representam pontos de publicação hospedados pelo ME2 e ME3. O aplicativo de assinatura B está conectado ao ME3 e recebe publicações do ME1 por meio de uma assinatura no ME2. Os mecanismos do sistema de mensagens são mencionados nas seguintes etapas.
Figura 1. Produção de Mensagens Ponto a Ponto Usando um Ponto de Mensagens Remoto Essa figura descreve a produção do sistema de mensagens ponto a ponto usando um ponto de mensagem remoto.
Figura 2. Sistema de Mensagens de Publicação/Assinatura Usando um Ponto de Mensagens Remoto Essa figura descreve o sistema de mensagens publicar/assinar usando um ponto de mensagens remoto.
As etapas a seguir aplicam-se a ambos os cenários.

Procedimento

  1. Exiba as propriedades para ME1 clicando em Integração de serviços -> Barramentos -> bus_name -> [Topologia] Mecanismos do sistema de mensagens -> engine_name.
  2. Na guia Tempo de Execução para ME1, clique em [Pontos de Mensagem Remotos] Pontos de Publicação Remotos e, em seguida, clique no ponto de publicação remoto que representa o ponto de publicação em ME2. Clique em Tópicos e verifique se o tópico consumidor está listado. Se o tópico não estiver listado, conclua as seguintes verificações:
  3. É possível que o registro da assinatura tenha ocorrido depois que a mensagem foi publicada. Publique novamente a mensagem e verifique novamente para ver se ela foi recebida.
  4. No ME1, exiba novamente o ponto de publicação remoto que representa o ponto de publicação em ME2. Reveja o valor do campo Mensagens de Saída Atuais.
  5. Se o número de mensagens de saída atuais for maior que zero, isto indica que as mensagens foram produzidas mas podem não ter sido recebidas por ME2.
    1. Verifique se os dois mecanismos do sistema de mensagens podem se comunicar entre si, consulte Service integration troubleshooting: Checking the communication between two messaging engines in a bus.
    2. Procure pelas mensagens anteriores no espaço de tópicos. Se houver mensagens anteriores e algumas ou todas elas forem para ME2, aguarde alguns momentos e, em seguida, atualize a visualização.
      • Se algumas das mensagens tiverem desaparecido do espaço de tópicos, o sistema que está entregando atualmente as mensagens podem estar acumulado. Aguarde até que o acúmulo seja removido e, em seguida, inspecione o ponto de publicação em ME2 para ver se a mensagem de teste chegou.
      • Se nenhuma mensagem tiver desaparecido do espaço de tópico, a transmissão das mensagens pode estar bloqueada por uma mensagem que está interrompida no estado de Confirmando. As mensagens posteriores podem aguardar até que esta mensagem seja entregue, caso contrário, a solicitação das mensagens será interrompida.

        Se uma mensagem for interrompida no estado Confirmando, essa mensagem estará contida em uma transação não resolvida. Um gerenciador de recursos, como um banco de dados pode ter sido interrompido. Resolva o problema com o gerenciador de recursos. Se isso falhar, anote o ID de Transação da mensagem e clique em Servidores -> Tipos de Servidor -> Servidores de aplicativos do WebSphere -> server_name -> Tempo de Execução > [Propriedades Adicionais] Serviço de Transações para exibir as propriedade gerais do serviço de transações. Utilize os links de Revisão para resolver a transação cujo ID Global corresponda ao ID da transação da mensagem.

    3. Examine o estado da mensagem de teste:
      • Se o status da mensagem de teste for "Envio Pendente", a mensagem está aguardando para ser enviada. ME2 pode não estar aceitando as mensagens. Conclua as seguintes verificações:
        • 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 se o ponto de publicação no ME2 não está completo: exiba as propriedades de tempo de execução para o ponto de publicação e compare com a Profundidade de Mensagem Atual para o Limite Alto de Mensagem. Se a sua profundidade de mensagem atual for igual ao limite alto de mensagem, o mecanismo do sistema de mensagens não aceitará novas mensagens até que as mensagens enfileiradas sejam consumidas. Reinicie o consumidor e aguarde até que o acúmulo seja removido ou exclua as mensagens.
        • Verifique se alterações na configuração foram propagadas. Certifique-se de o ME2 estar atento à existência do ponto de publicação ao implementar as definições de configuração mais recentes no servidor de aplicativos do ME2.
      • Se o status da mensagem de teste for "Confirmação Pendente", a mensagem foi enviada, mas o ME2 não recebeu a mensagem ou não a processou. Verifique se não há mensagens no estado Confirmando à frente da mensagem de teste na fila de transmissão e, em seguida, aguarde alguns momentos e examine o ponto de publicação novamente para ver se a mensagem de teste chegou. Se houver mensagens que estejam interrompidas no estado de Confirmando, resolva esse problema consultando o ponto seguinte.
      • Se a mensagem de teste (ou outra mensagem) estiver no estado Confirmando, a mensagem estará contida em uma transação não resolvida. Um gerenciador de recursos, como um banco de dados pode ter sido interrompido. Resolva o problema com o gerenciador de recursos. Se isso falhar, anote o ID de Transação da mensagem e clique em Servidores -> Tipos de Servidor -> Servidores de aplicativos do WebSphere -> server_name -> Tempo de Execução > [Propriedades Adicionais] Serviço de Transações para exibir as propriedade gerais do serviço de transações. Utilize os links de Revisão para resolver a transação cujo ID Global corresponda ao ID da transação da mensagem.
  6. Se o número de mensagens de saída concluídas for maior que zero, as mensagens foram produzidas e processadas por ME2, mas a mensagem de teste não apareceu. Execute novamente o aplicativo de produção e certifique-se de que o número de mensagens de saída concluídas em ME1 tenha aumentado (você talvez perceba um aumento na contagem de mensagens de saída ativas antes que a contagem de mensagens de saída concluídas aumente).
    • Se as contagens não aumentarem, a mensagem não foi produzida em ME1. Verifique se o aplicativo de produção está conectado a esse mecanismo do sistema de mensagens (consulte Determining which messaging engine an application is connected to).
    • Se as contagens aumentarem, a mensagem chegou em ME2, mas foi consumida, enviada para o destino de exceção ou expirou. Verifique a presença de consumidores e conclua, novamente, as verificações preliminares.
  7. Se o número de mensagens atuais e concluídas for zero, verifique se o aplicativo de produção está produzindo mensagens para esse destino ao executar, novamente, as verificações relevantes preliminares.
  8. Agora você verificou o fluxo de mensagens entre ME1 e ME2. Se você possui um aplicativo que está na posição do aplicativo de Assinatura A ou B na Figura 1, você investigou totalmente a situação; se ainda estiver com problemas, entre em contato com o representante de serviço ao cliente IBM. Se você tiver um aplicativo que está na posição de Aplicativo B de assinatura na Figura 2, em outras palavras um aplicativo que usa uma assinatura remota, você também deve investigar o fluxo de mensagens entre o ME2 e ME3 usando as seguintes etapas. Para determinar se o seu aplicativo está utilizando uma assinatura remota, exiba os pontos de publicação para o espaço de tópicos relevante, localize a sua assinatura e examine o nome do ponto de publicação. O nome estará no formato topic_space_name@messaging_engine_name. Isso informará por qual mecanismo do sistema de mensagens a assinatura está hospedada. Se este mecanismo do sistema de mensagens for diferente do mecanismo do sistema de mensagens ao qual o aplicativo de produção está conectado e do mecanismo do sistema de mensagens ao qual o aplicativo de consumo está conectado, uma assinatura remota estará sendo utilizada.
  9. Exiba as assinaturas para o ponto de publicação em ME2 e localize a sua assinatura na lista. Se a assinatura não estiver listada, conclua as seguintes verificações:
  10. Clique em sua assinatura e, em seguida, clique em Pontos de Assinatura Remotos Conhecidos. Na lista resultante, clique no nome do mecanismo do sistema de mensagens que é representado por ME3 no diagrama. Clique em Pedidos de Mensagem. Isso exibe os pedidos que foram recebidos pela assinatura em ME2, da assinatura remota em ME3.
  11. If possible, start the consuming application and ensure that it is actively trying to consume a message (the application should be in either a "receive with wait" state or an "asynchronous consumer registered" state), then follow the instructions in Investigando o Motivo pelo qual as Mensagens Não Estão Sendo Consumidas Através de um Ponto de Mensagem Remota ou Ponto de Assinatura, enquanto o Aplicativo Está em Execução. If your application cannot remain in an actively consuming state for a significant length of time (long enough to investigate the problem), follow the steps in Investigating why messages are not being consumed through a remote message point or subscription point, while the application is stopped.

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



Í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=tju_pubsub_nd_remote
Nome do arquivo: tju_pubsub_nd_remote.html