如果我们想要一个JMS会话参与事务,我们创建一个会话参数为true的JMS会话。
但是,我在哪里提到JMS,参与交易的会话是本地交易还是全局交易?
换句话说,我是否有控制权使JMS参与本地或全局事务,或者它将由Application Container决定?
答案 0 :(得分:1)
这取决于您使用的连接工厂。
JMS规范指定了两种不同类型的连接工厂,每种类型包含三个接口。
XAConnectionFactory,XAQueueConnectionFactory和 XATopicConnectionFactory
用于XA连接工厂和
ConnectionFactory,QueueConnectionFactory和TopicConnectionFactory
用于非XA连接工厂。如果您使用XA * * ,那么您的JMS会话将参与全局事务。当然,这部分是从代码中抽象出来的,因为通常通过特定于提供者的接口配置连接工厂,然后通过JNDI查找它们。
这是一个link,它讨论了WebLogic中JMS的全局事务。