首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Weblogic、JVM和EAR

Weblogic、JVM和EAR
EN

Stack Overflow用户
提问于 2010-05-12 23:05:03
回答 2查看 3.9K关注 0票数 3

我计划在一个生产weblogic (10)实例上使用jmap jdk1.5工具进行堆转储。

实际上,在这个weblogic实例上部署了3个EAR (可能更多,我不知道我没有访问权限)。

有人告诉我"weblogic为每个耳朵创建一个JVM“,有人能证实这一点吗?

使用jmap时,我需要jvm pid作为参数来进行堆转储...因为我有3个耳朵,我猜我有3个pid,所以我想知道哪个pid对应于哪个耳朵JVM?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-13 00:10:03

不-每个Weblogic服务器(或任何java进程)都运行在它自己的JVM中,有它自己的PID。所以所有的耳朵都会出现在同一个堆转储中。

如果在同一台计算机上运行多个Weblogic服务器实例,则每个实例都将具有单独的PID和单独的进程

票数 9
EN

Stack Overflow用户

发布于 2010-05-13 16:01:38

正如@josek所说,每个WebLogic服务器都有一个JVM,所以如果您所有的EAR都在同一个WebLogic服务器下,那么您将只需要转储一个pid。但是您可能仍然有多个服务器--可能是一个管理服务器和一个受控服务器,也可能是其他不相关的实例--所以如果您只是执行像ps -ef | grep java这样的操作(我假设这是在Unix上?)您可以看到许多pids,即使您可以将其过滤到您的WebLogic的JDK_HOME。

识别哪个pid属于特定服务器的一种方法是转到<domains>/servers/<your server>/tmp目录,并在其中运行fuser -f <your server>.lok。这将列出与该服务器相关的所有进程的pids,其中之一将是JVM java进程。(可能是JDBC等的其他内容)找到java进程的一种方法(我相信有人会指出另一种更好的方法!)类似于:

代码语言:javascript
复制
cd <domains>/servers/<your server>/tmp
ps -p "`fuser -f <your server>.lok 2>/dev/null`" | grep java 

如果每个EAR都在它自己的服务器中,我想您将不得不查看config.xml来确定您需要哪一个。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2820070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档