gpt4 book ai didi

java - 如何确保多个数据库在 spring 中与单个事务管理器进行事务处理?

转载 作者:搜寻专家 更新时间:2023-11-01 03:50:20 25 4
gpt4 key购买 nike

我正在使用多个事务管理器 (HibernateTransactionManager),每个数据库一个。

在一个代码流中,我相信我为每个数据库启动/完成多个事务。

我想确保所有数据库事务都是单个事务的一部分。我怎样才能做到这一点?

One of the post here建议使用 JTATransaction 管理器,我应该将它与已经在使用的 Hibernate 结合使用吗?

尽管我认为如果在应用程序的任何阶段执行异常,所有事务都将回滚。

我正在使用 Spring 4.1.* 和 hibernate 3.6.* 并且没有使用任何网络容器。

最佳答案

我使用 Hibernate 已经有好几年了,如果其中有任何误导,请提前致歉。

  • 您需要 JTA 事务。您的数据源需要支持 JTA。
  • 如果您在 Web 容器(如 Weblogic 或 Websphere)中运行,那么创建 JTA 事务很容易。我认为 Tomcat 在这里不够用。从命令行程序中,我还没有找到答案。
  • 如果您可以完全控制这三个数据库,您应该没问题。但请注意,涉及 Web 服务的系统回滚可能是不完整的或需要非标准协议(protocol)(例如,Weblogic 仅支持基于 t3 协议(protocol)的 SOAP JTA)

如果您得到结果,请分享,因为这方面的好建议很少。

(edit)刚刚注意到您明确表示您没有使用网络容器。如果您遇到命令行程序的解决方案,我们很多人都想知道。为分布式事务构建 JUnit 测试是我想做的事情,但一直没有找到如何生成 JTA 事务对象(/edit>)

关于java - 如何确保多个数据库在 spring 中与单个事务管理器进行事务处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30252922/

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