专栏名称: ImportNew
伯乐在线旗下账号,专注Java技术分享,包括Java基础技术、进阶技能、架构设计和Java技术领域动态等。
目录
今天看啥  ›  专栏  ›  ImportNew

SpringBoot Seata 死锁问题排查

ImportNew  · 公众号  · Java  · 2024-01-22 21:47
    

文章预览

(给 ImportNew 加星标,提高Java技能) 现象描述: Spring Boot 项目,启动的时候卡住了,一直卡在那里不动,没有报错,也没有日志输出 。 但是,奇怪的是,本地可以正常启动。 好吧,姑且先不深究为什么本地可以启动而部署到服务器上就无法启动的问题,这个不是重点,重点是怎么让它启动起来。(PS:我猜测可能是环境不同造成的,包括操作系统不同和JDK版本不同) 遇到这种情况,我先用jstack查看堆栈情况,果然发现了死锁。 拿到 jstack 的完整信息,然后仔细排查,看不懂的话也可以借助工具。 分析了每个被阻塞的线程之后,发现 main 线程和 timeoutChecker_1_1 互相等待对方持有的锁,从而形成了死锁 。 可以通过 jconsole 和 jvisualvm 查看。 需要注意,如果是查看远程进程,则需要加一些启动参数: -Dcom.sun.management.jmxremote :启用 JMX -Dcom.sun.management. ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览