如果我们希望JMS会话参与事务,我们将创建一个JMS会话,并将会话参数设置为true。
但是,我在哪里提到JMS参与事务的会话是本地事务还是全局事务?
换句话说,我是否有权让JMS参与本地或全局事务,还是由Application Container来决定?
发布于 2012-09-06 22:14:33
这取决于您使用的连接工厂。
JMS规范指定了两种不同类型的连接工厂,每种类型包含三个接口。
XAConnectionFactory、XAQueueConnectionFactory和XATopicConnectionFactory
对于XA连接工厂和
ConnectionFactory、QueueConnectionFactory和TopicConnectionFactory
用于非XA连接工厂。如果您使用XA**,那么您的JMS会话将参与全局事务。当然,这部分是从您的代码中抽象出来的,因为人们通常通过特定于提供程序的接口配置连接工厂,然后通过JNDI查找它们。
这是一个用WebLogic讨论JMS全局事务的link。
https://stackoverflow.com/questions/12301658
复制相似问题