Network Deployment (Distributed operating systems), v8.0 > Troubleshoot and support > Troubleshoot Service integration > Troubleshoot service integration message problems
Investigating why point-to-point messages are not being consumed
There are a set of checks that you can carry out to investigate why point-to-point messages are not being consumed from a destination on a service integration bus.
Complete the following preliminary checks before starting the investigation:
- Complete the following preliminary checks before starting the investigation:
- Check that the consuming application is consuming messages correctly:
- Check that the application is started.
- Check that the name of the destination being consumed from is correct.
- 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 expiring before they can be consumed.
- Click Service integration -> Buses -> bus_name -> [Destination resources] Destinations to display the destinations on the relevant bus. Click the destination and ensure that the Receive allowed check box is selected.
- 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 Understand why best effort nonpersistent messages are being discarded for a list of possible causes.
- Examine the error logs.
Complete the following checks if you did not get a response in the application because a message you were expecting did not appear on a queue. The information in this topic applies to local and remote producers, and local and remote consumers.
Procedure
- Run the consuming application and check that messages are still not being consumed.
- Stop the consuming application.
- Determine which messaging engine is hosting the queue point to which messages are being produced. See Determine the location of message points for a destination on a service integration bus.
- Click Servers -> Server Types -> WebSphere application servers -> server_name
-> [Server messaging] Messaging engines -> engine_name -> [Message points] Queue points > queue_point_identifier > [Runtime tab] Messages to view the messages on the queue point. Check that there are messages present that are in the Unlocked state.
- If there are no messages present, then there are no messages to consume. Run the producing application to produce a test message and check the queue again. If there are still no messages present, the test message has not arrived. Use the topic Investigating why point-to-point messages are not arriving to investigate the problem.
- If there are messages present but they are not in the Unlocked state, check for other consumers that are consuming from this queue point. If there are other consumers, stop them and repeat the investigation.
- Determine which messaging engine the consuming application is connected to. See Determine which messaging engine an application is connected to.
- If the consuming application is connected to the messaging engine hosting the queue point, check the consuming application for errors, in particular check that the selector in the consuming application matches the available message.
If the consuming application is connected to a messaging engine other than the messaging engine hosting the queue point, the messages are being routed through a remote message point. Display the runtime properties of the messaging engine that the consuming application is connected to, then display the remote message points for that messaging engine and view the list of message requests on the relevant message point. 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 Investigating why messages are not being consumed through a remote message point or subscription point, while the application is running. If the 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.