对同一数据库使用XA和非XA数据源

时间:2014-03-24 09:41:46

标签: jboss5.x java-ee-5 xa

我们的项目中有一些地方需要使用XA交易。但是在大多数项目中,常规的非XA数据源都可以。我一直想知道,我是否需要为同一个数据库定义2个版本的数据源,XA和非XA?我担心XA交易可能代价高昂,因此我希望尽可能避免使用它们。

1 个答案:

答案 0 :(得分:1)

如果您担心性能,这是一种非常合理的方法,因为2PC提交协议可能会慢4倍。当然这需要合格

  • 这取决于参与xa txn
  • 的资源管理器的数量
  • 2PC本身更昂贵,因为它需要更多的往返。

此外,当发生故障时,事务可以进入不确定状态,这实际上会锁定作为事务的一部分而更改的所有记录,直到它们被恢复。通过不使用XA,可以避免这种情况。