开发者社区 > 云原生 > 正文

使用Seata AT模式,在并发情况下,出现Global lock wait timeout异常,?

问题1:使用Seata AT模式,在并发情况下,出现Global lock wait timeout异常,并且出现锁残留。只能重启server端,才能清理残留锁 问题2:holdingby的xid我查了数据,表都是空的,我的理解是xid有序自增的,108 -> 112 中间少了 109、110、111

展开
收起
真的很搞笑 2023-05-30 16:18:17 574 0
1 条回答
写回答
取消 提交回答
  • 回答1:残留锁只可能是因为事务决议恰好有分支注册的情况,升级到1.5以上 残留的所在2分10秒后会删除,出现这个问题去看holdingby的xid去找下数据库这个globalxid什么状态 回答2:那重启也没用,日志里查看这个xid,在时候提交或回滚了。少了正常,被上面抢锁失败的线程用过去了,锁争抢跟分支注册是一起的,先抢到锁再注册上分钟,在代码里的顺序是先创建一个branchsession ,在lock,在addbranchsession到globalsession中,此回答整理自钉群“3群-Seata 开源讨论群”

    2023-05-30 16:28:34
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

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