IBM MQ reason code

MQRC 2049: Priority exceeds the maximum

MQRC 2049 warns that a message priority exceeded the local MQ maximum. The message was accepted, so check the outcome before retrying the put.

Other names for this code

Also written as RC2049, reason code 2049, MQ error 2049, MQRC_PRIORITY_EXCEEDS_MAXIMUM, 0801, 0x0801.

What it means

IBM classifies 2049 as MQCC_WARNING. The queue manager accepts the message at its maximum supported priority even though the requested MQMD Priority is higher. The descriptor retains the priority supplied by the application.

This is an important distinction from a failed send. A wrapper that retries every nonzero reason can create duplicates when it receives this warning.

A troubleshooting example

A sender asks for an out-of-range priority and receives 2049. Its generic error handler retries three times, producing multiple copies of the same request after commit. Correct the warning classification first, then fix the priority mapping. A test should deliberately exceed the maximum and verify that the application records one accepted message and a warning. Also test a real failed put so the change does not accidentally suppress failures that should stop processing.

Common causes

  • A producer uses a priority policy designed for a different queue manager.
  • An application maps an urgency level to a value above the supported maximum.
  • A wrapper treats the original MQMD value as proof that the requested priority was applied unchanged.

How to find the problem

  1. Capture CompCode and Reason together. Determine whether the put was under syncpoint and whether the surrounding transaction later committed.
  2. Read the queue manager maximum-priority attribute and compare it with the producer's requested value.
  3. Inspect the wrapper's warning handling. Look for automatic resubmission after reason 2049.
  4. Use unique test message identifiers to confirm how many messages arrive and how they are scheduled relative to ordinary messages.

How to fix it

  • Treat the completed put according to its warning and transaction outcome. Do not resend merely because the reason is nonzero.
  • Map business urgency into the supported priority range and document the intended ordering behavior.
  • Add a test for accepted-with-warning results. Keep warning reporting separate from decisions to repeat a business operation.

What it looks like

Illustrative diagnostic notes; not an IBM message template.
MQPUT: CompCode=MQCC_WARNING Reason=2049
Message accepted at supported maximum priority.
Check transaction outcome; do not blindly resend.

IBM documentation

IBM MQ 9.4: 2049 MQRC_PRIORITY_EXCEEDS_MAXIMUM. Use the documentation for your installed release.

Report a correction to WND Software.

Questions

Was my message put when I received 2049?

The queue manager accepted the put with a warning. If the put was under syncpoint, its final visibility still depends on the transaction outcome.

Why does MQMD still show the higher value?

IBM documents that the descriptor retains the producer's requested priority even though the queue placement uses the supported maximum.