MainframeKit

2053

MQRC_Q_FULL (X'0805')MQ REASON CODE

A put failed because the queue already holds its maximum number of messages. Usually the consumer is the real problem.

MOST LIKELY

The consuming application is stopped, abended or not triggered.

FIRST CHECK

Check depth with DISPLAY QLOCAL(name) CURDEPTH MAXDEPTH.

TRY IT ▸

MainframeKit assistant

What it means

Each queue has a maximum depth (MAXDEPTH). When the current depth reaches it, new puts are refused with 2053. On a transmission queue the same limit applies, so a stopped channel can make puts to remote queues fail. The code also appears in report messages and in the Queue Full event.

Typical causes

  • The consuming application is stopped, abended or not triggered.
  • The consumer runs but is slower than the arrival rate, for example after a traffic spike.
  • A bad message is being rolled back again and again, blocking the consumer.
  • A channel is stopped or retrying, so its transmission queue fills up.
  • MAXDEPTH is too low for normal peaks.

How to fix it

  1. Check depth with DISPLAY QLOCAL(name) CURDEPTH MAXDEPTH.
  2. Check DISPLAY QSTATUS(name) for IPPROCS; zero means no program has it open for input.
  3. Restart or scale out the consumer, or fix whatever stopped it.
  4. If it is a transmission queue, check DISPLAY CHSTATUS and restart the channel.
  5. Raise MAXDEPTH only if the volume is genuine and storage allows; it does not fix a dead consumer.

Example

Illustrative only; names and values are invented.

MQPUT failed  CompCode=2  Reason=2053  Queue=APP.ORDER.IN
DISPLAY QLOCAL(APP.ORDER.IN) CURDEPTH MAXDEPTH
  QUEUE(APP.ORDER.IN)  CURDEPTH(5000)  MAXDEPTH(5000)