开发者社区> 问答> 正文

seata 集群下找不到 xid

使用 spring cloud 集群 + seata 集群 ,使用 @GlobalTransactional 注解,seata 版本1.2.0 ,报错如下

Error updating database. Cause: java.sql.SQLException: io.seata.core.exception.RmTransactionException: Response[ TransactionException[Could not found global transaction xid = 182.254.185.180:8091:2010657011, may be has finished.] ]

展开
收起
一人吃饱,全家不饿 2021-02-02 11:06:50 5193 0
来自:阿里开源
1 条回答
写回答
取消 提交回答
  • 一般出现这个提示与服务重试及超时有关,比如A->B此时A调B超时,A默认是重试的,B等于被调了2遍,第二次被调用的B进行了响应,A发起者接收到结果后进行了提交/回滚,这次超时的B因为网络问题现在才被调用,他也收到了一样的全局事务id,进行业务处理,直到注册分支,此时全局事务已经被提交/回滚,导致当前超时的分支事务B无法注册上.

    这种问题一般保证你的业务不会去超时重试,如果你需要,请确认全局事务状态,做好幂等,防止已经做过的处理重复操作.

    2021-02-02 11:07:00
    赞同 展开评论 打赏
问答分类:
问答地址:
来源圈子
更多
收录在圈子:
+ 订阅
阿里巴巴相信开源的世界里人人贡献代码,人人获得收益,共同创造一个互帮互利的社区,促进技术进步和发展。
问答排行榜
最热
最新

相关电子书

更多
《Seata 1.3 新特性以及如何参与社区》 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载