1

我正在尝试一些带有 JOTM 的东西,并且有一些关于事情如何工作的通用问题。我列出了事件的顺序,以获得对所发生事件的明确总结。

  1. 创建交易
  2. 争取资源
  3. tx.commit
  4. 资源.start
  5. resource.end 抛出 XA 异常
  6. 资源提交

即使 resource.end 抛出 XAException , tx 提交仍然可以工作,这对我来说似乎是完全错误的。如果它没有将 tx 标记为回滚,那么抛出异常有什么意义......

是所有 tx 管理器都这样工作还是抛出 XAException 会使 tx 失败?

4

2 回答 2

2

TM 行为不仅取决于 XAException 的存在,还取决于 XAException 错误代码。从末尾抛出的任何(符合规范的)XA_RB∗ 代码都应该导致回滚。

于 2011-01-24T10:26:37.377 回答
0

在我对 XA 的理解中,在准备期间抛出的各种 XAExceptions 都必须导致 XA 事务的回滚。

HTH。

谢谢,尼丁

于 2011-07-28T18:36:13.143 回答