我正在通过WebSphere App Server中的JMS使用Oracle Advanced队列。

谁知道以下两个属性的影响: -

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

我已经在一些博客和快速开始指南中看到了提到的,通常是在“ add -doracle.jms.s.useemuledxa = false -doracle.jms.usenativexa = the Java_properties variable”的句子中进行的,没有任何解释,没有任何解释。做:-

例如

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

Google没有给出任何答案,有人知道他们实际做什么吗?

有帮助吗?

解决方案

希望此链接能详细解释事物: http://bit.ly/bsl9un 相关位包括以下...

模拟数据源是模仿JTA交易的XA协议的数据源。模拟数据源为Oracle数据源提供OC4J缓存,合并和Oracle JDBC扩展。从历史上看,仿真数据源是必要的,因为许多JDBC驱动程序没有提供XA功能。如今,即使大多数JDBC驱动程序确实提供XA功能,但仍有在某些情况下首选XA(例如不需要两阶段的交易的交易)。

从模拟数据源获得的连接非常快,因为连接模拟XA API而不提供完整的XA全局交易支持。特别是,模拟数据源不支持两阶段的提交。 Oracle建议您使用仿真数据源进行本地交易,或者当您的应用程序使用全局交易而无需两阶段提交时。

和...

非女性数据源可提供完整的(未配置)JTA服务,包括全球交易的两阶段提交功能。非女性数据源提供合并,缓存,分布式交易功能和供应商JDBC扩展(当前仅Oracle JDBC扩展)。有关两相提交局限性的信息,请参见第7章“ Java Transaction API”。

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

因此,当您设置模拟XA时发生了什么事是您的应用 认为 它正在获取XA,但对呼叫进行了优化或转化为单相提交。当您指定非女性XA时,您将获得完整的XA功能。无论哪种方式,该应用都没有意识到。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top