【问题标题】:Insert into Multiple Database in same transaction在同一事务中插入多个数据库
【发布时间】:2012-11-20 23:16:39
【问题描述】:

大家好,

我有一个要求,比如我必须在同一个事务中对不同的数据库(比如 SQL 和 ORACLE)执行 CRUD 操作。有没有办法做到这一点?

(1) 是否可以使用一个 SessionFactory 来实现这一点,如果可以,那么如何实现?

(2) 是否可以使用两个不同的 Sessionfactory 来实现,如果那么如何实现?

我拥有的唯一条件是当我触发一个查询以插入时,它应该同时插入到两个数据库中。

我希望我对我的问题非常清楚。 等待您的回复。

【问题讨论】:

标签: hibernate sessionfactory


【解决方案1】:

您可以使用全局事务。这是在 Java 事务 API 中指定的。许多应用程序服务器确实支持使用专有事务管理器,而该事务管理器又可以在您的会话工厂中使用。基本思想是使用数据库必须支持的两阶段提交协议(他们需要了解准备命令)。通常发现这些驱动程序是为了寻找 XA 兼容性。 Oracle 的 Weblogic 应用服务器,例如已经附带了符合 XA 的 Oracle 驱动程序。无论如何,这对于其他应用服务器可能会有所不同。

JTA 基于XOpen XA,您应该通读它以了解全局。

G-Man 提供了关于 Atomikos 配置的良好链接,以防您的应用服务器未提供合适的 TA 管理器或您不想使用应用服务器。

【讨论】:

    猜你喜欢
    • 2017-11-02
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 2021-08-05
    • 2014-06-08
    • 2016-03-29
    • 1970-01-01
    • 2018-09-13
    相关资源
    最近更新 更多