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
- Check the buffer length the program uses on MQPUT.
- Compare the message size with DISPLAY QMGR MAXMSGL and with the MAXMSGL of the channels on the route.
- Raise the queue manager limit (and the queue limit) if the larger size is expected, or split the data.
- 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