【问题标题】:JMS - Distributed TransactionJMS - 分布式事务
【发布时间】:2012-08-31 08:47:44
【问题描述】:

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

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

换句话说,我是否可以控制让 JMS 参与本地或全局事务,还是由应用程序容器来决定?

【问题讨论】:

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


    【解决方案1】:

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

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

    XAConnectionFactory、XAQueueConnectionFactory 和 XATopicConnectionFactory

    对于 XA 连接工厂和

    ConnectionFactory、QueueConnectionFactory 和 TopicConnectionFactory

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

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

    【讨论】:

      猜你喜欢
      • 2013-03-16
      • 1970-01-01
      • 2011-02-03
      • 2011-10-23
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      • 2015-01-09
      • 1970-01-01
      相关资源
      最近更新 更多