Restrictions in MQMD fields with IBM MQ classes for Java
Certain MQMD fields concerned with message segmentation should be left at their default value when using a queue manager that does not support segmentation.
The following MQMD fields are largely concerned with message segmentation:- GroupId
- MsgSeqNumber
- Offset
- MsgFlags
- OriginalLength
If an application sets any of these MQMD fields to values other than their defaults, and then does a put() or get() on a queue manager that does not support these, the put() or get() raises an MQException with MQRC_MD_ERROR. A successful put() or get() with such a queue manager always leaves the MQMD fields set to their default values. Do not send a grouped or segmented message to a Java application that runs against a queue manager that does not support message grouping and segmentation.
If a Java application attempts to get() a message from a queue manager that does not support these fields, and the physical message to be retrieved is part of a group of segmented messages (that is, it has non-default values for the MQMD fields), it is retrieved without error. However, the MQMD fields in the MQMessage are not updated, the MQMessage format property is set to MQFMT_MD_EXTENSION, and the true message data is prefixed with an MQMDE structure that contains the values for the new fields.