mscode-seata分布式事务如何调用
<p>mscode-seata分布式事务如何调用?</p>
收藏(0)
分享
相关标签:
-
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