gpt4 book ai didi

java - 如何找到死锁的两个线程?

转载 作者:搜寻专家 更新时间:2023-11-01 00:53:19 25 4
gpt4 key购买 nike

我们在 Tomcat 5.5 中运行经典的 spring/hibernate/mysql 堆栈。有时我们会在锁定表行的尝试超时时遇到死锁。抛出某种死锁异常。

异常很明显,堆栈跟踪表明出了什么问题。但它没有显示持有实际锁的另一个线程。除非我知道那个线程在做什么,否则它只是大海捞针。

问题:有没有办法找到另一个线程?

谢谢!

一月

最佳答案

下次遇到死锁时,请尝试在 MySQL 中使用以下命令。这应该会显示最后一个死锁。

SHOW INNODB STATUS

通常,当您在应用程序服务器上看到死锁时,日志只会显示受害线程(被回滚的线程)。由于另一个线程已完成,因此不会抛出任何异常。您需要返回到您的数据库以重新创建交易。

一旦您从数据库中捕获了发生死锁的位置,您就可以进一步调查。

关于java - 如何找到死锁的两个线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3704145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com