What is an extended transactional client?
An IBM® MQ extended transactional client can update resources managed by another resource manager, under the control of an external transaction manager.
If you are not familiar with the concepts of transaction management, see Transaction management and support.
Note that the XA transactional client is now supplied as part of IBM MQ.
A client application can participate in a unit of work that is managed by a queue manager to which it is connected. Within the unit of work, the client application can put messages to, and get messages from, the queues that are owned by that queue manager. The client application can then use the MQCMIT call to commit the unit of work or the MQBACK call to back out the unit of work. However, within the same unit of work, the client application cannot update the resources of another resource manager, the tables of a Db2® database, for example. Using an IBM MQ extended transactional client removes this restriction.
- Put messages to, and get messages from, queues that are owned by the queue manager to which it is connected
- Update the resources of a resource manager other than an IBM MQ queue manager
The external transaction manager communicates with the queue manager as a resource manager using the same MQI channel as used by the client application that is connected to the queue manager. However, in a recovery situation following a failure, when no applications are running, the transaction manager can use a dedicated MQI channel to recover any incomplete units of work in which the queue manager was participating at the time of the failure.