如何在j2ee中实现长时间运行的分布式事务



我想将记录从一个数据库移动到另一个在不同机器上的数据库。这些记录应该自动地从第一个数据库中删除,并插入到第二个数据库中。

可以用xa吗?我相信xa使用两阶段提交算法,这需要对资源进行阻塞锁

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

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

对于更一般的场景,可以使用

3阶段提交。这是一个非阻塞协议。虽然似乎没有任何Java规范。

还遇到了BTP和http://jotm.objectweb.org/jotm-btp.html

XA与锁定机制没有任何关联。它只是确保即使更新两个独立的事务资源也保留了酸度。如果我理解正确的话,您的用例只更新了一个,所以这里不需要XA。

最新更新