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