【问题标题】:What's the difference between nonXADatasource with jta="true" and XADataSource?jta="true" 的 nonXADatasource 和 XADataSource 有什么区别?
【发布时间】:2015-03-03 01:53:50
【问题描述】:

我对我们可以允许将 JTA 事务与非 XA 数据源一起使用这一事实感到困惑。 Link to the documentation。那么 XA/非 XA 数据源之间有什么区别?我们为什么要使用 XA 数据源?

【问题讨论】:

    标签: java jboss datasource jta xa


    【解决方案1】:

    XA 交易,在最一般的术语中,是一个“全局 可能跨越多个资源的事务”。非 XA 事务 总是只涉及一种资源。

    XA 事务涉及协调事务管理器,具有 一个或多个数据库(或其他资源,如 JMS)都参与 单一的全局事务。非 XA 交易没有交易 协调器,并且单个资源正在完成其所有事务工作 本身(这有时称为本地事务)。

    注意:以上解释摘自:theserverside (Mike Spille)

    jta="true",事务自动提交。

    【讨论】:

      【解决方案2】:

      我自己也想知道这个问题(非 XA 数据源中的“使用 JTA”选项),所以我测试了几个配置。我有一个分布式事务连接到两个 MySQL 服务器。

      这是我的结果。如果我有:

      1. 两个非 XA 数据源,都具有 JTA="true"

      结果:错误“在输入元感知对象时无法加入事务。”

      1. 两个非 XA 数据源,一个 JTA="true"

      结果:他们不会参与分布式事务。每个都将单独提交。

      1. 一个 XA 和一个非 XA,JTA="false",

      结果:同#2

      1. 一个 XA 和一个 JTA="true" 的非 XA。

      结果:有效!

      从这些看来,“使用 JTA”选项表明如果存在 XA 数据源,它是否会参与分布式事务。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-13
        • 2011-06-22
        • 2018-12-20
        • 2023-03-14
        • 2014-10-27
        • 2017-11-08
        • 2011-01-16
        相关资源
        最近更新 更多