如果 XAResource 是 Tx 中涉及的唯一资源,则应调用 XAResource.prepare()
我正在尝试使用 JOTM 进行一些操作,并且有一些关于其工作原理的一般性问题。我列出了事件的顺序,以便对所发生的事情有一个明确的总结。
- create tx
- enlist resource
- tx.commit
- resource.start
- resource.end
- resource.commit
为什么从不调用resource.prepare,并且提交标志(onephase)为true。这是此类用例的预期行为吗?
I am trying out a few things w/ JOTM and have some general purpose questions regarding how things work. I have listed the sequence of events to get a definitive summary of what happens.
- create tx
- enlist resource
- tx.commit
- resource.start
- resource.end
- resource.commit
Why is resource.prepare never called and the flag to commit (onephase) is true. Is this the intended behaviour for such use cases ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
XA 规范第 2.3.2 节:
单相提交
如果 TM 知道在任何地方都只有一个 RM,则它可以使用单阶段提交
对共享资源进行更改的 DTP 系统。在本次优化中,
TM 在未进行第 1 阶段准备的情况下发出第 2 阶段提交请求
要求。
是的
XA specification section 2.3.2:
One-phase Commit
A TM can use one-phase commit if it knows that there is only one RM anywhere in
the DTP system that is making changes to shared resources. In this optimisation,
the TM makes its Phase 2 commit request without having made a Phase 1 prepare
request.
yes