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 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 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
Complete the following checks if you have an application
that is producing messages to a topic space destination, and a consuming
application is not receiving the messages.
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 Investigating why publish/subscribe messages are not being received by a subscription through a remote message point to
investigate this scenario.