如果XAResource是Tx中涉及的唯一资源,则应调用XAResource.prepare()

时间:2011-01-23 00:37:48

标签: java transactions jta xa

我正在尝试一些与JOTM相关的事情,并且有一些关于事情如何运作的一般目的问题。我列出了事件的顺序,以便对发生的事情进行明确的总结。

  1. 创建tx
  2. 登记资源
  3. tx.commit
  4. resource.start
  5. resource.end
  6. resource.commit
  7. 为什么从不调用resource.prepare并且提交的标志(onephase)为true。这是此类用例的预期行为吗?

1 个答案:

答案 0 :(得分:1)

  

为什么从未调用resource.prepare并且提交的标志(onephase)为真

XA规范第2.3.2节:

单阶段提交 如果TM知道在任何地方只有一个RM,则它可以使用单阶段提交 正在对共享资源进行更改的DTP系统。在这个优化中, TM没有进行第1阶段准备就提出了第2阶段提交请求 请求。

  

这是否是此类用例的预期行为?