unix – 是否可以选择是否即时生成堆转储?
我们有一个应用程序部署到在UNIX上运行的WebSphere服务器,我们遇到两个问题:
>一个系统挂起,几分钟后恢复 – 调查,我们将需要线程转储(javacore). 问题是:当系统挂起时,我们不知道它是问题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? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |