SupportMQExtensions property

The JMS 2.0 specification introduced changes to the way certain behaviors work. IBM® MQ 8.0 and later includes the property com.ibm.mq.jms.SupportMQExtensions, which can be set to TRUE to revert these changed behaviors back to previous implementations.

[MQ 9.3.0 Jun 2022][MQ 9.3.0 Jun 2022][Jakarta Messaging 3.0]The com.ibm.mq.jakarta.jms.SupportMQExtensions property (Jakarta Messaging 3.0) is supported by the IBM MQ classes for Jakarta Messaging, which are available in com.ibm.mq.jakarta.client.jar.

[JMS 2.0]The com.ibm.mq.jms.SupportMQExtensions (JMS 2.0) property is supported by the IBM MQ classes for JMS, which are available in com.ibm.mq.allclient.jar or com.ibm.mqjms.jar.

Three areas of functionality are reverted by setting SupportMQExtensions to True:
Message priority
Messages can be assigned a priority of 0 - 9. Before JMS 2.0, messages could also use the value -1, indicating that a queue's default priority is used. JMS 2.0 and later do not allow a message priority of -1 to be set. Turning on SupportMQExtensions allows the value of -1 to be used.
Client id
The JMS 2.0 or later specification requires that non-null client IDs are checked for uniqueness when they make a connection. Turning on SupportMQExtensions means that this requirement is disregarded, and that a client ID can be reused.
NoLocal
The JMS 2.0 or later specification requires that when this constant is turned on, a consumer cannot receive messages that are published by the same client ID. Before JMS 2.0, this attribute was set on a subscriber to prevent it receiving messages that are published by its own connection. Turning on SupportMQExtensions reverts this behavior to its previous implementation.
This property can be set as follows:
java -Dcom.ibm.mq.jms.SupportMQExtensions=true

This property can be set either as a standard JVM System property on the java command or contained within the IBM MQ classes for JMS configuration file.