如何在j2ee中实现Long运行的分布式事务

时间:2011-11-30 11:47:45

标签: java transactions distributed-transactions

我想将记录从一个数据库移动到另一个数据库,这些数据库位于不同的机器上。记录应从第一个数据库中删除,并以原子方式插入第二个数据库。

我们可以使用xa吗? 我相信xa使用2阶段提交算法,它需要资源上的阻塞锁

目标数据库是EIS数据库,因此应该锁定最短时间。

2 个答案:

答案 0 :(得分:1)

XA确实是一个2阶段提交阻塞协议,但在我的情况下,只有两个实体被调用,第一个实体非常快。所以2PC对我有效。

对于更一般的场景,可以使用3阶段提交。这是一个非阻塞协议。虽然似乎没有任何java规范。

也遇到了BTP和http://jotm.objectweb.org/jotm-btp.html 不确定它与JDBC适配器融合的容易程度。

答案 1 :(得分:0)

XA对锁定机制没有任何影响。它只是确保即使您更新两个单独的事务资源也保留ACIDity。如果我理解正确,你的用例只会更新一个,所以这里不需要XA。