Investigating why publish/subscribe messages are not arriving at a subscription
There are a set of checks that you can carry out to investigate why publish/subscribe messages are not arriving at a subscription on a service integration bus.
Before you begin
Complete the following preliminary checks before starting
the investigation:
- Check that the producing application is producing messages correctly:
- Check that there are no failures or runtime errors from the application.
- Check that the name of the destination is correct.
- Check that messages are being produced.
- Check that the transaction used to produce the message was committed without any exceptions.
- Check that the consuming application is consuming messages correctly:
- Check that the application is started.
- Check that the subscription topic and selector are correct. Click and ensure that the Topic and Selector fields match the topic and selector specified in the application.
- If security is enabled, ensure that the subscription has the authority to receive messages sent to it. Refer to Segurança de Tópico and Segurança do Sistema de Mensagens for more information.
- Check the producing application to see if it is giving the messages a short expiry time. If this is the case, the messages might be disappearing before they arrive, or before they can be processed by the receiving messaging engine.
- Click to display the destinations on the relevant bus. Click on the topic space and check that the Send allowed and Receive allowed check boxes are selected.
- Examine the relevant exception destination to see if the messages appear there. If they do, use the information contained within the messages to understand why they have arrived at the exception destination, and write an application (or mediation) to process the messages.
- Check the reliability of the messages. If the reliability is set to best effort, the messages can be discarded by the system during normal operation. See Understanding why best effort nonpersistent messages are being discarded for a list of possible causes.
- Examine the error logs for exceptions.
About this task
Procedure
- Click to display the destinations on the relevant bus. Click on the relevant topic space and under Message points, click Publication points. For each publication point listed, click the publication point then click Runtime >Subscriptions and look for your subscription. If your subscription is not listed on any of the publication points, there is an error in the consuming application.
- Determine which messaging engines the producing and consuming applications are connected to. See Determining which messaging engine an application is connected to.
- If the producing application is connected to the same messaging engine as the consuming application, the messages are being produced locally to the consumer. Recheck the producing and consuming applications, and check the system logs for errors.
- If the producing application is connected to a different messaging engine than the consuming application, the messages are being routed through a remote publication point. Refer to 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 to investigate this scenario.