[z/OS]

IBM MQ for z/OS considerations for extended transactional client connections

Some XA transaction managers use sequences of transaction coordination calls which are incompatible with the features normally available to clients connecting to IBM® MQ for z/OS®.

Where an incompatible sequence is detected, IBM MQ for z/OS might issue an abend for the connection and return an error response to the client.

For example, xa_prepare receives abend 5C6-00D4007D, with return code -3 (XAER_RMERR) returned to the client.

Another example is that xa_end receives abend 5C6-00D40079.

For transaction managers which encounter this situation, take the following action to allow the transaction manager to interact with IBM MQ for z/OS.

Ensure that you have enabled changes to XA client connections on IBM MQ for z/OS which allow the transaction manager to prepare a transaction on a different connection.
Notes:
  • The change is not enabled by default. To make use of the change you must specify the keyword CSQSERVICE1 (in upper case) anywhere in the description field of the SVRCONN channel used by the XA client.
  • Channels with the CSQSERVICE1 keyword have the following restrictions:
    • GROUP unit of recovery disposition is not permitted. Only QMGR unit of recovery disposition is allowed. The disposition is determined by the name given on the xa_open call. If the queue sharing group name is used, then the XA connection requests a group unit of recovery.

      An xa_open call specifying the queue sharing group name in the xa_info parameter fails with xaer_inval.

    • The MQGMO_LOCK and MQGMO_UNLOCK options are not permitted. An MQGET call with MQGMO_LOCK or MQGMO_UNLOCK fails with MQRC_ENVIRONMENT_ERROR.

The change was enabled at IBM MQ for z/OS 9.0 through APAR P173140