windows下websphere如何生成javacore文件

一、问题描述

Javacore是分析性能问题的重要工具之一,在linux/unix/aix操作系统下,生成javacore的方法很简单,执行kill -3 java进程号即可。在windows下,对于tomcat/weblogic这种有输出控制台的系统,可以将焦点定位在控制台上,然后通过组合键ctr+break,即可在控制台输出javacore的信息,但是windows下的websphere启动后并没有控制台输出,将如何生成javacore呢?

二、解决方案

    Websphere提供了一个wsadmin.bat工具,可以解决此问题。操作步骤如下:

     1.进入cmd命令窗口,进入到WAS安装目录,例如:

E:\program\IBM\WebSphere\AppServer\bin,然后执行命令

wsadmin.bat -profileName AppSrv01,如下所示

其中AppSrv01是概要文件名。通过以上命令连接到了AppSrv01对应节点localhostNode01的server1进程上。

2.接着输入如下命令

set jvm [$AdminControl completeObjectName type=JVM,process=server1,*],

       如下所示:

windows下websphere如何生成javacore文件_第1张图片

         其中只有server1表示server的名称,根据实际情况进行替换。

    3.最后输入如下命令

          $AdminControl invoke $jvm dumpThreads,如下所示:

       windows下websphere如何生成javacore文件_第2张图片

      这样就在E:\program\IBM\WebSphere\AppServer\profiles\AppSrv01的目录下生成了javacore文件。

    此方法不仅仅在windows下有效,在linux/unix/aix下同样有效,只不过在非windows操作系统下我们可以直接通过kill -3的方式生成javacore,更加快捷方便。

三、总结

wsadmin工具提供了很多功能,生成javacore只是其中一个,它还可以用来生成heapdump文件,关于wsadmin的用途和用法需要在今后的工作实践中逐渐学习和运用。

 

补充:

手动生成heapdump的方法与生成javacore的方法类似,第1步相同,第2和第3步如下:

2.wsadmin>set objectName [$AdminControl queryNames WebSphere:type=JVM,process=server1,*]

其中只有server1表示server的名称,根据实际情况进行替换。

3.wsadmin> $AdminControl invoke $objectName generateHeapDump

你可能感兴趣的:(WEBSPHERE,中间件,javacore,websphere,生成,工具,中间件)