Investigating why a queue is full
When a queue becomes full, exceptions are returned when you attempt to produce a message to that queue. The most probable reason for a queue filling up is that the producing application is producing messages faster than they can be consumed by the consuming application, although causes can also include broken communication links or errors in the consuming application.
About this task
Procedure
- Click Service integration -> Buses -> bus_name -> [Destination resources] Destinations, then click the name of the queue that is full.
- Click [Related Items] Application resources topology,
then use the Application resources for this destination panel
to inspect the configuration of the applications and JMS resources
that are using the destination.
This panel can help you find the cause of the problem by giving you a high level view of many relevant resources.
- Click Service integration -> Buses -> bus_name -> [Destination resources] Destinations -> queue_name -> [Message points] Queue points -> queue_point_name,
then on the Runtime tab review the value of
the Current message depth. If this value increases
steadily, the producing application is outpacing the consumer. Note: If the destination has multiple queue points, or is mediated, complete the following checks for each message point the message might have been sent to or consumed from.
- Determine which messaging engines the producing and consuming applications are connected to.
- If the producing and consuming applications are connected
to different messaging engines, the messages are being routed through
a remote queue point. On the producer messaging engine, click Remote
queue points and then click the queue point that represents
the consumer queue point. Review the number of current outbound
messages. If the number of current messages is low, the problem does
not lie with the remote queue point; check that the consuming application
is started and is consuming messages without error. If the number
of current messages is approaching the high message threshold, complete
the following checks:
- 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 messaging engines can communicate, reduce the rate at which messages
are produced. If the messaging engines cannot communicate, resolve
the failure. If you encounter problems processing the backlog of messages
once communication is restored, and the backlog does not contain any
messages that are vital, consider deleting all the messages on the
remote message point. To delete the messages, select the relevant
remote message point and click Delete all messages. Note: You will not be able to recover the messages once they have been deleted.
- Check that messages are not being trapped in the Committing state. If they are, a resource manager, such as a database, has hung. Resolve the issue with the resource manager. If this fails, note the Transaction ID of the message and click Servers -> Server Types -> WebSphere application servers -> server_name -> Runtime > [Additional Properties] Transaction Service to display the general properties for the transaction service, including numbers of transactions. Use the Review links to resolve the transaction whose Global ID matches the transaction ID of the message.
- 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 messaging engines can communicate, reduce the rate at which messages
are produced. If the messaging engines cannot communicate, resolve
the failure. If you encounter problems processing the backlog of messages
once communication is restored, and the backlog does not contain any
messages that are vital, consider deleting all the messages on the
remote message point. To delete the messages, select the relevant
remote message point and click Delete all messages.
Subtopics
Determining which messaging engine an application is connected to
If your application fails to receive or produce a message, you might want to find out which messaging engine it is connected to, as part of troubleshooting the problem.Service integration troubleshooting: Checking the communication between two messaging engines in a bus
If you are troubleshooting a problem with your service integration system, you might want to check that two messaging engines can communicate with each other.
Related information:


File name: tju_queue_full.html