【问题标题】:Does anyone know what these Oracle AQ JMS XA properties do?有谁知道这些 Oracle AQ JMS XA 属性的作用?
【发布时间】:2010-04-21 16:53:18
【问题描述】:

我在 Websphere App Server 中通过 JMS 使用 Oracle 高级队列。

有谁知道以下两个属性有什么作用:-

 - oracle.jms.useEmulatedXA
 - oracle.jms.useNativeXA

我在一些博客和快速入门指南中看到过,通常在“将 -Doracle.jms.useEmulatedXA=false -Doracle.jms.useNativeXA=true 添加到 JAVA_PROPERTIES 变量”的句子中,没有任何解释为他们的所作所为:-

例如

我很好奇这两个属性实际上是做什么的,以及设置它们的含义是什么,即使它们似乎对我们的应用程序没有任何影响,无论我们是否设置它们。

谷歌搜索没有给出任何答案,有人知道他们实际做了什么吗?

【问题讨论】:

    标签: transactions jms oracle-aq


    【解决方案1】:

    希望这个链接能详细解释一下:http://bit.ly/bsl9Un 相关位包括以下...

    模拟数据源是数据源 模拟 JTA 的 XA 协议 交易。模拟数据源 提供 OC4J 缓存、池化和 Oracle 数据的 Oracle JDBC 扩展 来源。从历史上看,模拟数据 来源是必要的,因为许多 JDBC 驱动程序不提供 XA 能力。今天虽然大部分 JDBC 驱动程序确实提供 XA 能力,仍然有案例 哪个模拟 XA 是首选(例如 作为不需要的交易 两阶段提交。)

    从模拟获得的连接 数据源非常快, 因为连接模拟 XA API 不提供完整的 XA 全局 交易支持。尤其是, 模拟数据源不支持 两阶段提交。甲骨文推荐 您使用模拟数据源 本地交易,或当您的 应用程序使用全局事务 无需两阶段提交。

    还有……

    非模拟数据源提供完整的 (非模拟)JTA 服务,包括 两阶段提交功能 全球交易。非模拟数据 源提供池化、缓存、 分布式事务能力, 和供应商 JDBC 扩展(目前, 仅 Oracle JDBC 扩展)。为了 关于限制的信息 两阶段提交,参见第 7 章,“Java 事务 API”。

    Oracle 建议您使用 非模拟数据源 分布式数据库通信, 恢复和可靠性。非模拟 数据源共享物理 逻辑连接的连接 同一用户使用同一数据库。

    因此,当您设置模拟 XA 时发生的情况是,您的应用认为它正在获取 XA,但调用已优化或转换为单阶段提交。当您指定非模拟 XA 时,您将获得完整的 XA 功能。无论哪种方式,应用程序都完全不知道。

    【讨论】:

      猜你喜欢
      • 2011-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      • 1970-01-01
      • 1970-01-01
      • 2014-02-06
      • 2020-03-14
      相关资源
      最近更新 更多