WebSphere 应用服务器中生成系统转储、Java 核心转储和堆转储
作为一名系统管理员,一项至关重要的任务就是在 WebSphere Application Server (WAS) 中创建系统转储、Java 核心转储和堆转储。
通常情况下,当您需要排查应用程序问题,并深入调查应用程序或底层架构中存在的故障时,才需要执行此操作。
您可以选择通过 WAS 管理控制台或命令行两种方式来实现。具体选择哪种方式取决于您的个人偏好。
通过 WebSphere 管理控制台生成转储
- 首先,您需要登录到 DMGR 控制台。
- 在左侧导航菜单中,找到并点击“故障排除”选项。
- 接下来,点击“Java 转储和核心”选项。
- 在显示的列表中,选择您需要生成转储的 JVM,然后点击相应的操作按钮。
生成的转储文件(包括 Dump 和 Core)将被存储在 WebSphere 配置文件的特定位置。您将在消息提示中看到这些文件的绝对路径。
通过命令行生成转储
- 首先,您需要登录到 WAS 服务器。
- 然后,进入服务器的配置文件目录,找到并进入“bin”文件夹。
- 执行
wsadmin.sh
文件,启动 WebSphere 命令行管理工具。
[[email protected] bin]# ./wsadmin.sh WASX7209I: Connected to process "dmgr" on node localhostCellManager01 using SOAP connector; The type of process is: DeploymentManager WASX7029I: For help, enter: "$Help help" wsadmin>
- 接下来,您需要设置一个变量来存储目标 JVM 的名称。
set jvm [$AdminControl completeObjectName type=JVM,process=server1,*]
请注意:示例中使用了 ‘server1’。您需要将其替换为您实际使用的 JVM 名称。
wsadmin>set jvm [$AdminControl completeObjectName type=JVM,process=server1,*] WebSphere:name=JVM,process=server1,platform=proxy,node=localhostNode01,j2eeType=JVM,J2EEServer=server1,version=8.5.5.0,type=JVM,mbeanIdentifier=JVM,cell=localhostCell01,spec=1.0 wsadmin>
生成堆转储
$AdminControl invoke $jvm generateHeapDump
执行此命令后,系统会生成堆转储文件,并显示该文件的完整路径。
wsadmin>$AdminControl invoke $jvm generateHeapDump /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/./heapdump.20160618.225441.4808.0006.phd wsadmin>
生成 Java 核心转储
$AdminControl invoke $jvm dumpThreads
此命令将生成线程转储文件,该文件也将保存在配置文件目录下。
您可以看到,生成这些转储文件非常简单,而分析这些文件则是一项非常有价值的工作。在接下来的文章中,我将分享如何分析这些转储文件以进行应用程序故障排除。敬请期待!
觉得这篇文章有用吗?欢迎分享给更多的人!