WAS线程被挂起了

时间:2011-07-27 10:54:32

标签: websphere-6.1

我正面临WAS线程被挂起的问题。

配置:

操作系统:AIX,

WAS:6.1.0.31

com.ibm.websphere.threadmonitor.interval:180秒

com.ibm.websphere.threadmonitor.threshold:10分钟

com.ibm.websphere.threadmonitor.false.alarm.threshold:100

以上设置用于挂起检测。

有什么方法可以清理悬挂的线程吗?

提前致谢。

3 个答案:

答案 0 :(得分:0)

没有。 WAS没有为此提供机制。你看到的是一个仅提供通知的监视机制。您应该首先解决线程挂起的根本问题。开始讨论该问题

kill -3 <pid>

并读取堆栈跟踪。很可能在几次之后你会看到一个模式,然后你必须阅读你的应用程序的源代码,以了解真正出错的地方以及如何解决它。

答案 1 :(得分:0)

据我所知,Java不允许杀死挂起的线程。最好的办法是通过追捕原因来避免悬挂线程。就像在其他答案中已经提到的那样,尝试强制应用程序服务器创建线程转储(也称为Java Core)并分析其内容。在Linux / UNIX系统上

kill -3 <pid>

将完成这项工作。您可以在互联网上找到免费的图形工具来查看这些转储。我通常使用一个名为IBM Thread and Monitor Dump Analyzer for Java的人。 WebSphere Application Server日志文件将告诉您要查找的线程名称。

答案 2 :(得分:0)

你有工具可以解释。我没有在生产中使用它(从来没有这个要求,我们去干净重启)。你可以看看这个。它使用字节码检测。

http://www.ibm.com/developerworks/websphere/downloads/hungthread.html