加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

unix – 是否可以选择是否即时生成堆转储?

发布时间:2020-12-15 22:36:58 所属栏目:安全 来源:网络整理
导读:我们有一个应用程序部署到在UNIX上运行的WebSphere服务器,我们遇到两个问题: 一个系统挂起,几分钟后恢复 – 调查,我们将需要线程转储(javacore). 系统挂起,无法恢复并需要重新启动WebSphere – 为了调查,我们将需要线程转储和堆转储. 问题是:当系统挂起时,
我们有一个应用程序部署到在UNIX上运行的WebSphere服务器,我们遇到两个问题:

>一个系统挂起,几分钟后恢复 – 调查,我们将需要线程转储(javacore).
>系统挂起,无法恢复并需要重新启动WebSphere – 为了调查,我们将需要线程转储和堆转储.

问题是:当系统挂起时,我们不知道它是问题1还是2.

理想情况下,我们首先要手动生成线程转储,然后等待系统恢复.如果没有,那么我们在重新启动WebSphere之前生成线程转储和堆转储.

我知道kill -3(或kill -QUIT)命令.该命令将仅生成线程转储(如果参数IBM_HEAPDUMP = false),或者线程转储和堆转储(如果IBM_HEAPDUMP = true).但是,必须在WebSphere启动之前设置IBM_HEAPDUMP,并且在WebSphere运行时不能更改它.

关于IBM_HEAPDUMP参数和kill -3命令,我的理解是否正确?

此外,是否可以按照我描述的方式获取日志? (即,在生成JVM诊断时,选择是否即时生成堆转储)

解决方法

你的理解与我读过的一切都是一致的.

但是,我相信你可以使用wsadmin scripting. This article describes how to force javacores and heapdumps on a Windows platform来完成你想要的东西,其中kill -3不可用,但是可以在任何WebSphere系统上运行相同的命令.

在wsadmin或wsadmin脚本中,执行:

set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]?
$AdminControl invoke $jvm generateHeapDump?
$AdminControl invoke $jvm dumpThreads?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读