-1

我看到 websphere 应用程序服务器中存在挂起的线程。如何解决此问题?我应该向应用程序开发人员发送哪些文档?谢谢。

4

2 回答 2

0

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

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

线程转储将转到一个名为“javacore...txt”的文件(“...”将是一个表示时间戳之类的长字符串),但在 Solaris 上除外,它将转到服务器的 native_stdout.log。javacore 不仅仅是线程堆栈,因此您可以搜索“线程详细信息”以快速找到该部分。您需要从服务器日志中搜索线程名称/堆栈,以确定哪个线程是挂起的,然后从那里开始。

于 2017-06-21T12:11:54.483 回答
-1

如果您遇到 WebSphere Application Server 的性能、挂起或高 CPU 问题,IBM 支持团队记录了一个过程来收集诊断和解决此类问题所需的数据。该程序主要基于

  • 启用应用程序服务器 verboseGC
  • 在出现问题时运行一个脚本,该脚本为有问题的 JVM 收集 3 个 javacore

在此过程结束时,您需要收集:

  • *.tar.gz 脚本生成的文件
  • 脚本生成的 javacores
  • 服务器日志(SystemOut.log、native_stderr.log、...)

并将结果发送给 IBM 支持。

要获取脚本和有关此过程的其他信息,我建议查看以下文章:

AIX 平台也存在类似的文档。

于 2017-06-21T12:27:53.463 回答