IBM MQManager as XA Transaction Manager with Spring-jms and Spring-tx

非 Y 不嫁゛ 提交于 2019-12-02 08:19:56
whitfiea

You can't use the WMQ JMS client (which is what spring-jms would use) with the MQ QueueManager acting as the XA transaction manager. The intention is that a JMS application would be controlled via a JTA implemented transaction manager (i.e. a Java EE application server).

You can however use the WMQ Java client (i.e. non JMS) and have the MQ QueueManager act as the XA transaction manager (non JTA).

As @COLINHY said you can use it the other way around. The Spring transaction manager will be the coordinator using JTA and the spring-jms can then be used to bring in the WMQ JMS client and MQ Queue Manager as a transactional resource.

We used in the reverse way: Using Spring transaction management as the global transaction manager, MQ XA as one of the transaction branches. It worked fine.

To clarify the support for MQ JMS client.

When installed within a JavaEE certified server, the MQ Resourced Adapter (powered by the JMS Client) will result in the MQ QueueManager working in a Resource Manager role, co-ordinated by the JavaEE Server.

Outside of the JavaEE environment the JMS Client is not supported when working with any other JTA provider. (if this of interest please raise a requirement)

With the MQ Java Classes (aka Base Java) - MQ can be a Transaction Manager but only with it co-ordinating itself MQ and a DB (such as Oracle and DB2). It's not possible to get MQ to co-ordinate anything else.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!