JMS - 分布式事务

时间:2012-09-06 13:52:08

标签: java java-ee transactions jms distributed-transactions

如果我们想要一个JMS会话参与事务,我们创建一个会话参数为true的JMS会话。

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

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

1 个答案:

答案 0 :(得分:1)

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

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

  

XAConnectionFactory,XAQueueConnectionFactory和   XATopicConnectionFactory

用于XA连接工厂和

  

ConnectionFactory,QueueConnectionFactory和TopicConnectionFactory

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

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