MainframeKit

2031

MQRC_MSG_TOO_BIG_FOR_Q_MGR (X'07EF')MQ REASON CODE

A put failed because the message is longer than the queue manager's maximum message length, or a channel's limit.

MOST LIKELY

The message is bigger than the queue manager's MAXMSGL.

FIRST CHECK

Check the buffer length the program uses on MQPUT.

TRY IT ▸

MainframeKit assistant

What it means

The queue manager has its own maximum message length (MAXMSGL). A message larger than that cannot be put, whatever the queue allows. When it shows up in a report message, a channel on the way to a remote queue rejected it, and a channel MAXMSGL lower than the queue manager's can cause that.

Typical causes

  • The message is bigger than the queue manager's MAXMSGL.
  • A channel between queue managers has a smaller MAXMSGL than the message.
  • The buffer length passed on MQPUT is wrong.
  • The sending and receiving environments have different limits.

How to fix it

  1. Check the buffer length the program uses on MQPUT.
  2. Compare the message size with DISPLAY QMGR MAXMSGL and with the MAXMSGL of the channels on the route.
  3. Raise the queue manager limit (and the queue limit) if the larger size is expected, or split the data.
  4. On distributed platforms, consider MQMF_SEGMENTATION_ALLOWED; z/OS does not segment messages.

Example

Illustrative only; names and values are invented.

MQPUT failed  CompCode=2  Reason=2031  QMgr=QM01
DISPLAY CHANNEL(CHL.TO.QM02) MAXMSGL