我想将记录从一个数据库移动到另一个数据库,这些数据库位于不同的机器上。记录应从第一个数据库中删除,并以原子方式插入第二个数据库。
我们可以使用xa吗? 我相信xa使用2阶段提交算法,它需要资源上的阻塞锁目标数据库是EIS数据库,因此应该锁定最短时间。
答案 0 :(得分:1)
XA确实是一个2阶段提交阻塞协议,但在我的情况下,只有两个实体被调用,第一个实体非常快。所以2PC对我有效。
对于更一般的场景,可以使用3阶段提交。这是一个非阻塞协议。虽然似乎没有任何java规范。
也遇到了BTP和http://jotm.objectweb.org/jotm-btp.html 不确定它与JDBC适配器融合的容易程度。
答案 1 :(得分:0)
XA对锁定机制没有任何影响。它只是确保即使您更新两个单独的事务资源也保留ACIDity。如果我理解正确,你的用例只会更新一个,所以这里不需要XA。