Queue depth events

Queue depth events are related to the queue depth, that is, the number of messages on the queue.

In IBM MQ applications, queues must not become full. If they do, applications can no longer put messages on the queue that they specify. Although the message is not lost if this occurs, a full queue can cause considerable inconvenience. The number of messages can build up on a queue if the messages are being put onto the queue faster than the applications that process them can take them off.

The solution to this problem depends on the particular circumstances, but might involve:

  • Diverting some messages to another queue.
  • Starting new applications to take more messages off the queue.
  • Stop nonessential message traffic.
  • Increasing the queue depth to overcome a transient maximum.

Advance warning that problems might be on their way makes it easier to take preventive action. For this purpose, IBM MQ provides the following queue depth events:

    Queue Depth High events
    Indicate that the queue depth has increased to a predefined threshold called the Queue Depth High limit.

    Queue Depth Low events
    Indicate that the queue depth has decreased to a predefined threshold called the Queue Depth Low limit.

    Queue Full events
    Indicate that the queue has reached its maximum depth, that is, the queue is full.

A Queue Full Event is generated when an application attempts to put a message on a queue that has reached its maximum depth. Queue Depth High events give advance warning that a queue is filling up. This means that having received this event, the system administrator needs to take some preventive action. We can configure the queue manager such that, if the preventive action is successful and the queue depth drops to a safer level, the queue manager generates a Queue Depth Low event.

The first queue depth event example illustrates the effect of presumed action preventing the queue becoming full.