gpt4 book ai didi

java - 我需要 XA 交易吗? DefaultMessageListenerContainer 本地事务与 XA 连接工厂

转载 作者:行者123 更新时间:2023-12-01 10:24:03 27 4
gpt4 key购买 nike

在我的 Spring Boot 应用程序中,我有以下场景:

  1. 从 JMS 队列读取消息
  2. 利用数据做一些事情。
  3. 对 Oracle 数据库执行 JDBC 插入

如果在任何阶段发生异常,我希望确保消息不会丢失并被放入回退队列中。

我是否需要在启用 XA 的 JMS 连接工厂和启用 XA 的 Oracle 数据库驱动程序之间进行 XA 事务?或者使用例如 DefaultMessageListenerContainer 并将 sessionTransacted 标志设置为 true 就足够了吗?

如果第二个是正确答案,那么使用 XA 事务的最佳情况是什么?

最佳答案

您可以通过使用 Spring 同步两个事务并对您的应用程序进行编码来处理重复交付的(小)可能性(当数据库提交但 JMS 回滚,例如,由于数据库之间的连接丢失),从而避免 XA。 DB 和 JMS 提交)。我建议你阅读优秀的Distributed transactions in Spring, with and without XA由 Spring 团队的 Dave Syer 编写。

如果 javaworld 将来某个时候移动该链接,请谷歌 syer xa spring,您应该会找到它。

关于java - 我需要 XA 交易吗? DefaultMessageListenerContainer 本地事务与 XA 连接工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35432451/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com