What is an extended transactional client?

A WebSphere® 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 WebSphere 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 a WebSphere MQ extended transactional client removes this restriction.

A WebSphere MQ extended transactional client is a IBM® WebSphere MQ MQI client with some additional function. Using this function a client application, within the same unit of work, can perform the following tasks:
  • 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 a WebSphere MQ queue manager
This unit of work must be managed by an external transaction manager that is running on the same system as the client application. The unit of work cannot be managed by the queue manager to which the client application is connected. This means that the queue manager can act only as a resource manager, not as a transaction manager. It also means that the client application can commit or back out the unit of work using only the application programming interface (API) provided by the external transaction manager. The client application cannot, therefore, use the MQI calls, MQBEGIN, MQCMIT, and MQBACK.

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.

In this section, a WebSphere MQ MQI client that does not have the extended transactional function is referred to as a WebSphere MQ base client. You can consider, therefore, a WebSphere MQ extended transactional client to consist of a WebSphere MQ base client with the addition of the extended transactional function.