个性化阅读
专注于IT技术分析

如何在WebSphere挂起/停止时自动获取线程转储?

本文概述

线程转储对于Java应用程序故障排除至关重要。如果你从事与性能相关的工作, 内存泄漏, 调试等, 那么通常会要求你进行线程和堆转储。

你可以手动进行转储, 但是如果你想自动进行转储, 则可以按照以下方法进行。以下演示基于

以下演示基于WebSphere 9, 但是过程将类似于其他WAS版本。

JVM停止时执行线程转储

在某些情况下, 每当JVM停止时, 你都希望进行线程转储。当你不确定谁或如何停止JVM时, 这将很有用。

要配置它;

  • 登录到WebSphere管理控制台
  • 导航到服务器>>服务器类型>> WebSphere应用程序服务器
  • 进入JVM并在服务器基础结构下展开” Java和进程管理”
  • 单击流程定义
  • 单击其他属性>>定制属性下的” Java虚拟机”
  • 单击新建, 然后输入名称为
com.ibm.ws.runtime.dumpShutdown
  • 值为真
  • 点击确定
was-dump-shutdown
  • 查看并保存配置

现在, 只要JVM停止, 就会生成堆转储。

我停止了JVM, 并且可以在概要文件路径下的WAS服务器上看到以下javacore文件。

-rw-r--r--. 1 root root 3179348 Nov 28 22:49 javacore.20161128.224916.4926.0001.txt
-rw-r--r--. 1 root root 3124208 Nov 28 22:49 javacore.20161128.224924.4926.0002.txt

挂线时进行线程转储

如果你遇到挂起线程的问题, 并且当前你手动进行转储, 则可以自动执行此操作。

通过执行基本配置, 只要线程挂了已配置的定时, WebSphere就会生成转储。

  • 登录到WAS控制台并进入相应的JVM
  • 展开”服务器基础结构”下的”管理”, 然后单击”自定义属性”
  • 添加以下三个属性

com.ibm.websphere.threadmonitor.threshold-在线程挂起配置的时间时生成转储。值以秒为单位。

com.ibm.websphere.threadmonitor.interval –线程监视器应多久检查一次挂起的线程。以秒为单位的值。

com.ibm.websphere.threadmonitor.dump.java –检测到时生成转储。价值是真实的。

被甩了

以上配置将在线程挂起600秒时生成转储, 而WebSphere将每300秒监视一次线程。

进行转储后, 你可以分析并解决应用程序问题。我希望这有帮助。

赞(0)
未经允许不得转载:srcmini » 如何在WebSphere挂起/停止时自动获取线程转储?

评论 抢沙发

评论前必须登录!