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.
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
- A maintenance change set GET(DISABLED) to stop processing during the work and did not set it back.
- An operator inhibited gets to hold messages while a problem was investigated.
- An automation rule that inhibits gets in some situation.
Where to look
- DISPLAY QLOCAL(name) GET PUT CURDEPTH IPPROCS, or ALL.
- DISPLAY QSTATUS(name) TYPE(QUEUE): IPPROCS shows whether the application has the queue open for input.
- The change records and operator log for who altered the queue, and why.
How to fix
- Confirm why gets were inhibited and that the reason has gone (for example, the change is complete).
- ALTER QLOCAL(name) GET(ENABLED).
- 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.