Restrictions and variations for core classes

The core classes generally behave consistently across all environments, even if the equivalent MQI calls normally have environment differences. The behavior is as if a Windows or UNIX WebSphere(R) MQ queue manager is used, except for the following minor restrictions and variations.

MQGMO_* values

The following MQGMO_* values are not supported by all queue managers, and their use might throw MQException from an MQQueue.get():

Additionally, MQGMO_SET_SIGNAL is not supported when used from Java.

MQPMRF_* values

These are used only when putting messages to a distribution list, and are supported only by queue managers supporting distribution lists. For example, z/OS queue managers do not support distribution lists.

MQPMO_* values

The following MQPMO_* values are not supported by all queue managers, and their use might throw MQException from an MQQueue.put() or an MQQueueManager.put():

MQCNO_FASTPATH_BINDING

This value is ignored on queue managers that do not support it, or when using a TCP/IP client connection.

MQRO_* values

The following report options can be set but are ignored by some queue managers. This can affect applications connected to a queue manager that honors the report options when the report message is generated by a remote queue manager that does not. Avoid relying on these options if there is a possibility that a queue manager involved does not support them.

Miscellaneous differences with z/OS

Message priority
When a message is put with a priority greater than MaxPriority, a z/OS queue manager rejects the put with MQCC_FAILED and MQRC_PRIORITY_ERROR. Other platforms complete the put with MQCC_WARNING and MQRC_PRIORITY_EXCEEDS_MAXIMUM, and treat the message as if it were put with MaxPriority.
BackoutCount
A z/OS queue manager returns a maximum BackoutCount of 255, even if the message has been backed out more than 255 times.
Default dynamic queue prefix
When connected to a z/OS queue manager using a bindings connection, the default dynamic queue prefix is CSQ.*. Otherwise, the default dynamic queue prefix is AMQ.*.
MQQueueManager constructor
Client connect is not supported on z/OS. Attempting to connect with client options results in an MQException with MQCC_FAILED and MQRC_ENVIRONMENT_ERROR. The MQQueueManager constructor might also fail with MQRC_CHAR_CONVERSION_ERROR (if it fails to initialize conversion between the IBM-1047 and ISO8859-1 code pages), or MQRC_UCS2_CONVERSION_ERROR (if it fails to initialize conversion between the queue manager's code page and Unicode). If your application fails with one of these reason codes, ensure that the National Language Resources component of Language Environment(R) is installed, and ensure that the correct conversion tables are available.

Conversion tables for Unicode are installed as part of the z/OS C/C++ optional feature. See the z/OS C/C++ Programming Guide, SC09-4765, for more information about enabling UCS-2 conversions.