我在基于Java的项目中使用 Oracle 和 Teradata 这两个数据库。我想设置全局事务,以便我可以在一个事务下对数据库执行操作。
对于诸如JTA或atomikos之类的全局事务,数据库必须具有XA驱动程序支持。但正如我的发现Teradata没有XA驱动程序。
那么现在如何在1个事务下的两个数据库上设置全局事务和性能操作?
答案 0 :(得分:0)
你为什么要那样做?
如果您使用terradata作为数据仓库,则可以在单独的异步过程中提供它。
话虽这么说,但您并不需要XA驱动程序作为JTA事务的一部分运行。当然,不这样做会导致您做出一些妥协,特别是在恢复的情况下。
我知道的所有支持JTA的事务管理器都有 Last Resource Commit (或LRC,check this page的概念以获取更多详细信息)。您可以将Teradata数据源配置为LRC。
答案 1 :(得分:0)
如果使用oracle和teradata数据库,则需要配置oracle数据库网关以支持分布式事务。因为您不会使用XA,但您将使用具有两阶段提交的分布式事务。