【问题标题】:Why am I getting "is not a NamedXAResource" in Apache Karaf 4.0.4?为什么我在 Apache Karaf 4.0.4 中得到“不是 NamedXAResource”?
【发布时间】:2016-05-04 11:18:32
【问题描述】:

【问题讨论】:

    标签: java osgi apache-karaf xa


    【解决方案1】:

    我找到了答案并将其发布在此处,以便为其他人提供更快的方法来解决相同的问题。我花了很长时间才弄清楚这一点,并得到了 Guillaume 的帮助。

    在 Aries 事务管理器包内的 Apache Karaf 中使用的 geronimo 事务管理器可以恢复事务。默认情况下,此功能在较旧的 karaf 版本中已关闭。在 Apache Karaf 4.0.4 中,这种情况发生了变化。

    配置 etc/org.apache.aries.transaction.cfg 包含此设置

    aries.transaction.recoverable = true
    

    它会激活恢复支持。这样做的缺点是所有 jdbc 和 jms 连接都必须实现 NamedXAResource。这超出了标准,因此大多数 jdbc 和 jms 提供程序不支持。

    ActiveMQ 的解决方案是使用 JCAPoolingConnectionFactory。对于 jdbc,您可以使用 aries 事务 jdbc 包装您的 XADataSource。它提供了一个池化支持,也支持恢复。

    如果您对应用程序的工作方式感到满意,则可以简单地将上述开关设置回 false。然后,事务将像在旧 Apache Karaf 版本中一样工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-26
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      • 2021-12-13
      • 2010-12-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多