2012-09-06 62 views
1

如果我们想要JMS会话参与事务,我们创建一个JMS会话并将session参数设置为true。JMS - 分布式事务

但是,我在哪里提到JMS,它参与交易的会话是本地交易还是全局交易?

换句话说,我是否有控制权让JMS参与本地或全局事务,或者是Application Container谁来决定?

回答

1

这取决于您使用的连接工厂。

JMS规范指定了两种不同类型的连接工厂,每种类型包含三个接口。

XAConnectionFactory,XAQueueConnectionFactory和 XATopicConnectionFactory

为XA连接工厂和

连接工厂,和的QueueConnectionFactory TopicConnectionFactory的

对于非XA连接工厂。如果您使用XA * *,那么您的JMS会话将参与全局事务。当然,这部分是从代码中抽象出来的,因为通常通过特定于提供者的接口配置连接工厂,然后通过JNDI查找它们。

这是一个link,它讨论了WebLogic中JMS的全局事务。