2030 (07EE) (RC2030): MQRC_MSG_TOO_BIG_FOR_Q
Explanation
An MQPUT or MQPUT1 call was issued to put a message on a queue, but the message was too long for the queue and MQMF_SEGMENTATION_ALLOWED was not specified in the MsgFlags field in MQMD. If segmentation is not allowed, the length of the message cannot exceed the lesser of the queue MaxMsgLength attribute and queue manager MaxMsgLength attribute.
- On z/OS, the queue manager does not support the segmentation of messages; if MQMF_SEGMENTATION_ALLOWED is specified, it is accepted but ignored.
This reason code can also occur when MQMF_SEGMENTATION_ALLOWED is specified, but the nature of the data present in the message prevents the queue manager splitting it into segments that are small enough to place on the queue:
- For a user-defined format, the smallest segment that the queue manager can create is 16 bytes.
- For a built-in format, the smallest segment that the queue manager can create depends on the particular format, but is greater than 16 bytes in all cases other than MQFMT_STRING (for MQFMT_STRING the minimum segment size is 16 bytes).
MQRC_MSG_TOO_BIG_FOR_Q can also occur in the Feedback field in the message descriptor of a report message; in this case it indicates that the error was encountered by a message channel agent when it attempted to put the message on a remote queue.
Completion code
MQCC_FAILED
Programmer response
Check whether the BufferLength parameter is specified correctly; if it is, do one of the following:
- Increase the value of the queue's MaxMsgLength attribute; the queue manager's MaxMsgLength attribute may also need increasing.
- Break the message into several smaller messages.
- Specify MQMF_SEGMENTATION_ALLOWED in the MsgFlags field in MQMD; this will allow the queue manager to break the message into segments.
Parent topic: API reason codes