MQRC 2051: Putting messages is inhibited
MQRC 2051 means puts are disabled on a queue or its resolved destination. Check the reason for the restriction before enabling message delivery.
Other names for this code
Also written as RC2051, reason code 2051, MQ error 2051, MQRC_PUT_INHIBITED, 0803, 0x0803.
What it means
MQPUT and MQPUT1 cannot put messages while the destination is inhibited. The queue named by the application can resolve through another definition, so the restriction may be on the final target rather than the first name inspected.
The reason can also appear in a report after a message channel agent encounters a disabled destination remotely. Establish where the failure occurred before changing a local queue.
A troubleshooting example
A billing receiver is undergoing maintenance, so operators disable puts on its local queue. The sender receives 2051 and restarts repeatedly. Restarting cannot remove the restriction and adds noise to the incident. Confirm the maintenance window, stop aggressive retries and agree how buffered work will resume. When the receiver is ready, an administrator restores the queue setting and the team sends a small test before releasing the full backlog. The recovery check is successful processing, not just a successful put.
Common causes
- An administrator disabled puts for maintenance or incident containment.
- An alias resolves to a target whose put setting differs from the alias inspected by the producer.
- A remote receiving queue is disabled although the local transmission path remains available.
How to find the problem
- Record the queue manager, destination names and whether 2051 came from the put or from a later report.
- Display the relevant queue definitions, including alias resolution and PUT settings. Preserve the original values for the incident record.
- Check the change record or contact the queue owner. A deliberate maintenance restriction should not be undone by an application retry routine.
- Compare the failure time with consumer availability and downstream maintenance. Determine when normal puts are expected to resume.
How to fix it
- Have the authorized administrator enable puts when the operational restriction is ready to end. For a local queue, IBM documents ALTER QLOCAL(name) PUT(ENABLED).
- If temporary inhibition is part of the service design, use bounded delayed retries and a clear upstream failure or waiting state.
- Test one approved message after the change and verify downstream processing. Avoid releasing an accumulated backlog without considering receiver capacity.
What it looks like
Illustrative diagnostic notes; not an IBM message template. DISPLAY QLOCAL(BILLING.IN) PUT Observed: PUT(DISABLED) MQPUT Reason=2051 Confirm maintenance status before an approved enable.
IBM documentation
IBM MQ 9.4: 2051 MQRC_PUT_INHIBITED. Use the documentation for your installed release.
Related codes
Questions
Is 2051 the same as a full queue?
No. 2051 means puts are inhibited. MQRC 2053 means the queue is full.
Can a reconnect fix 2051?
Not while the destination remains inhibited. Identify the operational restriction and the actual resolved queue.