Mainframe Path Start learning free
CoreError and abend codes2053

MQRC 2053 — queue full

A put failed because the queue reached its maximum depth. The real problem is usually the consumer, not the producer.

What happened

An MQPUT or MQPUT1 returned completion code 2 with reason 2053, MQRC_Q_FULL. The message was not put.

Typical application log and queue status (illustrative)
MQPUT failed  CompCode=2  Reason=2053  Queue: ORDER.IN

DISPLAY QLOCAL(ORDER.IN) CURDEPTH MAXDEPTH
  QUEUE(ORDER.IN)  CURDEPTH(50000)  MAXDEPTH(50000)
DISPLAY QSTATUS(ORDER.IN) TYPE(QUEUE)
  IPPROCS(0)  OPPROCS(3)  UNCOM(NO)

What it means

Every local queue has a maximum depth (MAXDEPTH). When the current depth reaches it, further puts are refused. On a transmission queue the same limit applies, so a stopped channel can make puts to remote queues fail too. Producers are working; messages are not being taken off fast enough.

Typical causes

Symptoms

Where to look

How to diagnose

  1. Confirm which queue is full and whether it is local or a transmission queue.
  2. Check IPPROCS: is any consumer attached?
  3. If none, find out why the consumer stopped — abend, not started, trigger not firing.
  4. If one is attached, check whether it is progressing or looping on the same message.
  5. For a transmission queue, check the channel status and the remote side.
  6. Check whether the arrival rate is unusual.

How to fix

Fix the consumer first: restart it, clear the poison message to a backout or error queue, or restart the channel. Once it drains, producers recover on retry. Raising MAXDEPTH with ALTER QLOCAL can buy time, but only after checking there is page set or storage capacity. Then resubmit or retry failed producer work, and confirm whether any messages were lost.

How to prevent

Production considerations

Interview question

Producers are getting reason code 2053. What do you do?

Stuck on something else?
Ask the community or search the full course.

Ask a question