Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何对WebSphere Application Server中挂起的线程进行故障排除?_Websphere_Workload Scheduler - Fatal编程技术网

如何对WebSphere Application Server中挂起的线程进行故障排除?

如何对WebSphere Application Server中挂起的线程进行故障排除?,websphere,workload-scheduler,Websphere,Workload Scheduler,我看到websphereapplicationserver中存在挂起的线程。如何解决此问题?我应该向应用程序开发人员发送哪些文档? 谢谢。最重要的是线程堆栈-它应该会显示一条消息,指示挂起的线程,它会告诉您该线程正在做什么 这本身可能还不够,特别是当该线程正在等待其他线程时。在这种情况下,您可能需要一个线程转储。非Windows系统上的进程ID可以通过“kill-3”触发(我需要做更多的研究来告诉您Windows上的等效进程,尽管有工具可以模拟“kill-3”),并且服务器也可以配置为在检测到挂

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

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

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


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

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

  • 启用应用程序服务器verboseGC
  • 在出现问题时运行一个脚本,为有问题的JVM收集3个JavaCore
在此过程结束时,您需要收集:

  • *.tar.gz文件由脚本生成
  • 脚本生成的javacores
  • 服务器日志(SystemOut.log、native_stderr.log等)
并将结果发送给IBM支持部门

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


AIX平台也有类似的文档。

WebSphere提供了当线程运行时间超过指定时间限制时有关挂起线程的警告。这可能是真的,也可能不是真的,有时您的线程执行了大量工作,并且超过了设置的时间限制。日志输出可能会提供有关该特定事件的某些信息。是否没有其他挂线症状?