一次java线程死锁的定位
ETL流程卡死原因定位
一、现象:模板大量并发执行流程,经常流程节点脚本运行完成之后,卡死,不更新状态,不继续往下执行。查看日志未发现任何异常信息。
二、定位。
jps -ml查看进程号pid,然后jstack -l pid输出线程dump文件,分析发现有死锁。经过分析为模板并发流程更新节点状态与流程保存日志方法调用数据库连接时的死锁。
查看这两个线程的堆栈在哪个方法,以及各自持有的锁。
两个线程互锁了。
共用一个连接,一个执行commit,另外一个调用存储过程,不知怎么就死锁了。