Mainframe Path Start learning free
CoreError and abend codes2016

MQRC 2016 — get inhibited

An MQGET failed because gets are inhibited on the queue (GET(DISABLED)). Messages stay on the queue and build up until gets are enabled again.

What happened

An application's MQGET failed with completion code MQCC_FAILED and reason 2016. If the application retries, its log fills with the same reason while the queue's depth grows.

Application log (illustrative)Illustrative example
08:19 ORDRECV  MQGET from ORDER.IN failed, reason 2016. Retrying.
08:20 ORDRECV  MQGET from ORDER.IN failed, reason 2016. Retrying.

What it means

2016 is MQRC_GET_INHIBITED: MQGET calls are currently inhibited for the queue (or for the queue it resolves to). The check is made when each MQGET is issued, so an application that already has the queue open gets 2016 too. Its partner for puts is 2051, MQRC_PUT_INHIBITED.

Typical causes

Where to look

How to fix

  1. Confirm why gets were inhibited and that the reason has gone (for example, the change is complete).
  2. ALTER QLOCAL(name) GET(ENABLED).
  3. Watch CURDEPTH fall as the application catches up.

Interview question

An application is running and connected, but its queue keeps growing and its log shows reason 2016. What is wrong?

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

Ask a question