There are a set of checks that you can carry out to investigate
why messages are not being consumed at a destination on a service
integration bus, when the messages are being routed through a remote
message point and the consuming application is stopped.
About this task
Complete this task as part of either
Investigating why point-to-point messages are not being consumed or
Investigating why publish/subscribe messages are not arriving at a subscription. This task
explains how to investigate the flow of messages in a scenario where
the messages are being routed through a remote message point and the
consuming application is stopped.
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.Figure 1. Consumo de Mensagens Ponto a Ponto Usando um Ponto de Mensagens Remoto
Figure 2. Sistema de Mensagens de Publicação/Assinatura Usando um Ponto de Mensagens Remoto 
Procedure
- If you have followed the steps in Investigating why point-to-point messages are not being consumed or Investigating why publish/subscribe messages are not arriving at a subscription before starting
this task, you should have displayed a list of message requests. On
the previous panel (runtime properties for the message point), check
that the Message requests issued (point-to-point
only) or Message requests received (publish/subscribe
only) value is greater than zero. If the value is not greater than
zero, no requests have been made. Check the consuming application
for errors:
- Check that the application is connected to ME2.
- Check that the application did not produce any errors that might
explain why messages are not being consumed.
- Check that the consumer was started.
- Check that the application did attempt to consume a message:
- If the application uses an asynchronous consumer, check that the
asynchronous consumer was registered.
- If the application is synchronous, check that the consumer performed
a "receive" or a "receive with wait" function (this might
require a modification to the application to extend the time that
the application waits for a message).
- If the number of issued message requests is greater than
zero, requests from ME3 to ME2 for messages on the message point have
been made. Check that the Completed message requests value
is greater than zero. If not, 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.
- If the number of completed message requests is greater
than zero, requests are being issued by ME3, processed by ME2 and
completed back to ME3. To ensure that those requests were made by
the application being investigated, record the current values of Completed
message requests and either Message requests
issued or Message requests received.
Rerun the consuming application and check that both values have increased.
If the values do not increase, the application did not make a request
from ME3 to ME2 for this message point (the existing numbers relate
to a previous application that was consuming messages). Check the
consuming application for errors:
- Check that the application was started.
- Check that the name of the destination being consumed from is
correct.
- If the values do increase, the message request was issued
and completed, but no message was returned or processed by the consuming
application.
- Check that the application selection criteria match the available
message or messages on the message point.
- Check that the application is correctly receiving the message,
by checking for application or runtime errors.
What to do next
If you are still having problems, contact your IBM customer
service representative.