2017-06-21 49 views
-1

我看到在websphere应用程序服务器中挂起了线程。我如何解决这个问题?我应该将哪些文档发送给应用程序开发人员? 谢谢。如何解决WebSphere Application Server中挂起的线程问题?

+0

当线程运行超过指定的时间限制时,WebSphere会提供有关挂起线程的警告。这可能也可能不是真的,有时你有一个线程执行大量工作并超过设定的时间限制。日志输出可能提供有关特定内容的一些信息。是否没有其他挂线的症状? – DanielBarbarian

回答

0

最重要的是线程栈 - 它应该显示消息指出挂起的线程,它会告诉你该线程正在做什么。

这可能不够,特别是如果该线程正在等待其他线程。在这种情况下,您可能需要线程转储。这可以通过在非Windows系统上针对进程ID“杀死-3”来触发(我必须做更多的研究才能告诉你Windows上的等效进程,尽管有些工具可以模拟“kill -3”) ,并且服务器还可以配置为当它检测到挂起的线程时使用JVM系统属性com.ibm.websphere.threadmonitor.dump.java(设置为“true”或表示最大数目的整数值线程转储你想要的)。

线程转储将转到名为“javacore ... txt”的文件(“...”将是一个代表时间戳之类的东西的长字符串),除了在Solaris上,它将转到服务器native_stdout.log。 javacore不仅仅是线程栈,所以你可以搜索“Thread Details”来快速找到该部分。您需要从服务器日志中搜索线程名称/堆栈以确定哪个线程是挂起的线程并从那里开始。

-1

如果遇到WebSphere Application Server的性能,挂起或CPU高问题,那么IBM支持团队将记录一个过程,以收集诊断和解决问题类型所需的数据。这个过程本质上是基于

  • 使应用服务器详细垃圾
  • 运行脚本,这个问题,收集3点了Javacores有问题的JVM

在这个过程结束的时候,你需要收集:通过产生

  • 了Javacores b中的脚本生成

    • * .tar.gz文件y中的脚本
    • 服务器日志(SystemOut.log中,native_stderr.log,...)

    并将结果发送给IBM支持。

    要拿到剧本和有关此过程的其他信息,我建议给看看下面的文章:

    类似的文件还存在AIX平台。

  • 相关问题