mscode-seata分布式事务如何调用

提问 1 619
邮箱用户_su9rp
邮箱用户_su9rp LV5 2021年8月14日 15:03 发表
点击群号免费加入社区交流群:367346704
<p>mscode-seata分布式事务如何调用?</p>
收藏(0)  分享
相关标签: 讨论
1个回复
  • 站长
    2021年8月14日 15:10
    Seata 的事务上下文由 RootContext 来管理。 应用开启一个全局事务后,RootContext 会自动绑定该事务的 XID,事务结束(提交或回滚完成),RootContext 会自动解绑 XID。 [pre] // 绑定 XID RootContext.bind(xid); // 解绑 XID String xid = RootContext.unbind(); [/pre] 应用可以通过 RootContext 的 API 接口来获取当前运行时的全局事务 XID。 [pre] // 获取 XID String xid = RootContext.getXID(); [/pre] 应用是否运行在一个全局事务的上下文中,就是通过 RootContext 是否绑定 XID 来判定的。 [pre] public static boolean inGlobalTransaction() { return CONTEXT_HOLDER.get(KEY_XID) != null; } [/pre] 我们只需要使用一个 @GlobalTransactional 注解在业务方法上: [pre] @GlobalTransactional public void purchase(String userId, String commodityCode, int orderCount) { ...... } [/pre]
    1 0