This topic describes how to investigate why publish/subscribe messages
are not arriving at a subscription on a service integration bus.
About this task
Use this topic if you have an application that is producing messages
to a topic space destination, and a consuming application is not receiving
the messages.
Perform 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 actually 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's topic and selector are correct. To do this
click Service integration -> Buses -> bus_name -> [Destination
resources] Destinations -> topic_space_name -> [Message points] Publication
points -> publication_point_identifier -> Subscriptions -> subscription_name 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 Topic security and Messaging security 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 may be disappearing before
they arrive, or before they can be processed by the receiving messaging engine.
- Click Service integration -> Buses -> bus_name -> [Destination
resources] Destinations 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 messages are being discarded for
a list of possible causes.
- Examine the error logs for exceptions.