gpt4 book ai didi

Java事务服务

转载 作者:行者123 更新时间:2023-12-04 07:04:00 25 4
gpt4 key购买 nike

我想在我的 Java 应用程序中使用 Java Transaction 服务进行分布式事务管理。

我有 3 个不同的数据库,我必须使用 3 个不同的 Connection 对象连接到这些数据库。我想在 3 个数据库中的每一个中插入某些数据。
我的要求是应该保持原子性。因此,要么数据应插入所有 3 个数据库,要么不应插入任何数据库。
我在网上搜索了这种交易,我得到了 Java Transaction 服务。
我可以在这里找到它的 API http://java.sun.com/products/jts/javadoc/index.html
但我仍然不知道如何使用它来实现交易。有人可以向我提供 Java 事务服务的示例代码或教程的链接。

提前致谢,
阿尼凯特·凯达里

最佳答案

几点:

  • XA 并不是解决这个问题的唯一可能解决方案,尽管它可能是最简单的,因为它周围工具的成熟度(搜索 CAP 定理和 BASE - 基本可用软状态最终一致)。
  • XA 事务具有失败模式,您仍然可以在参与的数据库之间获得不一致的窗口。
  • 您没有说明您使用的是哪个或哪些数据库——也许其中一个或所有数据库不支持 XA 事务。
  • 您不太可能希望在 Java 中使用原始 JTS/JTA API,而是可以使用任何众所周知的 Java 应用程序服务器,因为它们包含事务管理器(使用 JTS/JTA)。

  • 因此,假设您决定使用 Java 应用程序服务器,我建议您使用 Spring、EJB 3.0 或类似的东西进行数据库交互,因为它们将允许您执行声明性事务,这比自己手动编写事务逻辑要干净得多。

    这是一个 link到 Spring 关于事务的文档。

    关于Java事务服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1398099/

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