使用db链接避免分布式事务

时间:2012-12-27 09:58:26

标签: oracle spring transactions dblink xa

我在Spring Java EE应用程序中工作,该应用程序必须处理两个不同的数据源,A和B.

由于应用程序需要以一致的方式更新A和B.如果一次更新失败,整个过程将失败并且必须进行回滚。

关于如何实现应用程序,我有两个不同的想法:

  1. 我必须将更新包含在分布式事务XA中。这种方法在性能方面将是昂贵的。此外,B源将很快关闭,保持整个XA基础设施可能是一个瓶颈;
  2. 我可以设置从db A到db B的Oracle DB链接,让我的应用程序认为只使用单个数据源和本地事务,而Oracle处理更新同步。当B关闭时,我只需删除B更新并关闭数据库链接。
  3. 您如何看待这两种情况?

1 个答案:

答案 0 :(得分:0)

使用数据库链接的查询将隐式启动Oracle中的分布式事务。因此,您可以获得与处理XA和应用程序中的两个数据源相同的开销。

我们一直在使用XA,它从来就不是瓶颈。别担心。