我打算做JMAP JDK1.5工具堆转储在生产的WebLogic(10)实例。

其实有3 EAR(也许更多,真的不知道我没有访问)部署在此WebLogic实例。

有人告诉我“的WebLogic每个EAR创建一个JVM” 有人可以证实?

使用JMAP我需要的JVM PID作为参数来完成堆转储... 因为我有3个EAR我想我有3 PID所以我不知道如何知道哪个PID对应于EAR JVM?

有帮助吗?

解决方案

都能跟得上 - 每个WebLogic服务器(或任何java程序)运行在它自己的JVM与它自己的PID。因此,所有你的耳朵会出现在同一个堆转储。

如果你具有相同的机器上运行多个Weblogic服务实例,每个实例将有一个单独的PID和一个单独的过程

其他提示

由于@josek说,你必须每一个JVM的WebLogic服务器,因此,如果您所有的耳朵都在同一WebLogic服务器下you'l只有一个PID倾倒。但你仍然可以有多个服务器 - 也许一个管理服务器和管理服务器,也许其他无关的情况下 - 所以,如果你只是做类似ps -ef | grep java(?我假设这是在Unix上),你可以看到很多的PID,甚至如果你可以把它过滤到您的WebLogic的JDK_HOME。

识别哪个PID属于特定服务器的一种方法是去<domains>/servers/<your server>/tmp目录,并在那里运行fuser -f <your server>.lok。这将列出所有与该服务器,其中之一将是JVM的java程序进程的PID。 (可能是其他公司的JDBC等)的一种方法找到刚才java程序(!我敢肯定有人会指出另一种更好的方法)是这样的:

cd <domains>/servers/<your server>/tmp
ps -p "`fuser -f <your server>.lok 2>/dev/null`" | grep java 

如果每个EAR是在它自己的服务器,我想你一定要看config.xml中看到你所需要的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top