更新两个数据库时如何确保事务管理

时间:2014-11-20 09:51:04

标签: java mysql database oracle dao

当连接两个不同的数据库(比如一个是mysql而另一个是oracle)时,如何确保数据库中的事务成功或者没有成功(例如,一个是mysql,另一个是oracle)。

更多信息..

我有一个交易,我将更新两个不同的数据库。因此,我有两个不同的服务和两个不同的DAO。如何确保DB或无成功交易..

由于 阿赫亚

1 个答案:

答案 0 :(得分:2)

这称为“两阶段提交”。您需要两个数据库的JTA事务管理器和XA JDBC驱动程序才能使其正常工作。

你的问题中的皱纹是“服务”这个词:如果两个DAO被封装为单独的Web服务,那么JTA就无法工作。然后调用这两个服务的对象将必须管理所有内容。您必须创建补偿交易,跟踪每个呼叫的成功或失败,并做出相应的反应。