我正面临WAS线程挂起的问题。WAS线程正在挂起
配置:
OS: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
以上设置用于挂起检测。
有什么方法可以清理挂起的线程吗?
在此先感谢。
我正面临WAS线程挂起的问题。WAS线程正在挂起
配置:
OS: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
以上设置用于挂起检测。
有什么方法可以清理挂起的线程吗?
在此先感谢。
编号WAS不提供这种机制。你看到的只是提供通知的监督机制。你应该真正解决为什么线程挂在首位的根本问题。要开始使用该问题
kill -3 <pid>
并读取堆栈跟踪。很可能您会在几次之后开始看到一个模式,然后您必须阅读应用程序的源代码才能了解真正出错的地方以及如何解决问题。
据我所知,Java是不允许杀死挂起的线程的。最好的办法是通过追查原因避免挂线。就像其他答案中已经提到的一样,尝试强制应用程序服务器创建线程转储(又名Java Core)并分析其内容。在Linux/UNIX系统上,一个
kill -3 <pid>
将完成这项工作。你会在互联网上找到免费的图形工具来查看这些转储。我通常使用一个叫IBM Thread and Monitor Dump Analyzer for Java的。 WebSphere Application Server日志文件将告诉您要查找的线程名称。
您有解释工具。我没有在生产中使用它(从来没有这样的要求,我们去干净的重新启动)。你可以检查一下。它使用字节码检测。
http://www.ibm.com/developerworks/websphere/downloads/hungthread.html