开发者社区 > 云原生 > 中间件 > 正文

seata的API回滚全局事务,role应该是Launcher,为什么会是Participant呢?

用seata的API回滚全局事务的时候,发现全局事务还是提交了。然后debug了一下代码,发现程序进入了截图中红框的判断,并且判断条件为true。 lQLPJxa0JFtGoPPNAhzNA4-wyZWrbD3YI-8DKDYDtoDsAA_911_540.png 所以在下面就直接return了。我的服务是全局事务的发起者,role应该是Launcher,为什么会是Participant呢?

展开
收起
fuxixi 2022-09-26 16:15:29 493 0
1 条回答
写回答
取消 提交回答
  • globaltransation不是一个实例导致你获取当前的会构建一个参与者的新实例,这个globaltransation要保存在tm侧的线程上下文里,建议你放到环绕切面里,这样就是创建出来直接使用就行了,不需要放到threadlocal里。

    2022-09-26 17:19:29
    赞同 展开评论 打赏

为企业提供高效、稳定、易扩展的中间件产品。

相关电子书

更多
《Seata 1.3 新特性以及如何参与社区》 立即下载
ACE 区域技术发展峰会:Flink Python Table API入门及实践 立即下载
Java Spring Boot开发实战系列课程【第15讲】:Spring Boot 2.0 API与Spring REST Docs实战 立即下载