Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Weblogic、JVM和EAR_Java_Jakarta Ee_Jvm_Weblogic_Ear - Fatal编程技术网

Java Weblogic、JVM和EAR

Java Weblogic、JVM和EAR,java,jakarta-ee,jvm,weblogic,ear,Java,Jakarta Ee,Jvm,Weblogic,Ear,我计划在生产weblogic(10)实例上使用JMAPJDK1.5工具进行堆转储 实际上,在这个weblogic实例上部署了3个EAR(可能更多,我不知道我没有访问权限) 有人告诉我“weblogic为每个EAR创建一个JVM” 有人能证实这一点吗 使用jmap,我需要jvm pid作为参数来进行堆转储。。。 因为我有3个EAR,我想我有3个pid,所以我想知道如何知道哪个pid对应于哪个EAR Nope-每个Weblogic服务器(或任何java进程)都在自己的JVM中运行,并具有自己的PID

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

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

有人告诉我“weblogic为每个EAR创建一个JVM” 有人能证实这一点吗

使用jmap,我需要jvm pid作为参数来进行堆转储。。。
因为我有3个EAR,我想我有3个pid,所以我想知道如何知道哪个pid对应于哪个EAR

Nope-每个Weblogic服务器(或任何java进程)都在自己的JVM中运行,并具有自己的PID。因此,您的所有耳朵都将出现在同一堆转储中


如果有多个Weblogic服务器实例在同一台机器上运行,那么每个实例都有一个单独的PID和一个单独的进程,正如@josek所说,每个Weblogic服务器都有一个JVM,因此如果您的所有耳朵都在同一个Weblogic服务器下,那么您只有一个PID要转储。但是您可能仍然有多个服务器—可能是一个管理服务器和一个托管服务器,也可能是其他不相关的实例—因此,如果您只是执行类似于
ps-ef | grep java
(我假设这是在Unix上?)的操作,您可能会看到很多PID,即使您可以将其过滤到WebLogic的JDK_主页

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

cd <domains>/servers/<your server>/tmp
ps -p "`fuser -f <your server>.lok 2>/dev/null`" | grep java 
cd/servers//tmp
ps-p“`fuser-f.lok2>/dev/null`”| grepjava
如果每个EAR都在自己的服务器中,我想您必须查看config.xml以了解您需要哪些