Weblogic, JVM и EAR - PullRequest
       22

Weblogic, JVM и EAR

3 голосов
/ 12 мая 2010

Я планирую создать дамп кучи с помощью инструмента jmap jdk1.5 в производственном экземпляре weblogic (10).

На самом деле в этом экземпляре weblogic развернуто 3 EAR (возможно, даже больше, я не знаю, у меня нет доступа).

Кто-то сказал мне: "Weblogic создает JVM для каждого EAR" Кто-нибудь может это подтвердить?

С jmap мне нужен jvm pid в качестве параметра для создания дампа кучи ... Так как у меня есть 3 EAR, я думаю, у меня есть 3 pid, поэтому мне интересно, как узнать, какой pid соответствует какой EAR JVM?

Ответы [ 2 ]

7 голосов
/ 12 мая 2010

Нет - каждый сервер Weblogic (или любой Java-процесс) работает в своей собственной JVM со своим собственным PID. Таким образом, все ваши EAR будут отображаться в одном и том же дампе кучи.

Если на одном компьютере запущено несколько экземпляров сервера Weblogic, каждый из них будет иметь отдельный PID и отдельный процесс

4 голосов
/ 13 мая 2010

Как говорит @josek, у вас будет одна JVM для каждого сервера WebLogic, поэтому, если все ваши EAR находятся под одним и тем же сервером WebLogic, у вас будет только один pid для выгрузки. Но у вас все еще может быть несколько серверов - может быть, сервер администратора и управляемый сервер, возможно, другие несвязанные экземпляры - поэтому, если вы просто сделаете что-то вроде ps -ef | grep java (я предполагаю, что это на Unix?), Вы можете увидеть много pids , даже если вы можете отфильтровать его в JDK_HOME вашего WebLogic.

Один из способов определить, какой pid принадлежит конкретному серверу, - перейти в каталог <domains>/servers/<your server>/tmp и запустить там fuser -f <your server>.lok. Это перечислит pids всех процессов, связанных с этим сервером, одним из которых будет Java-процесс JVM. (Может быть, другие для JDBC и т. Д.) Один из способов найти только процесс Java (и я уверен, что кто-то укажет другой, лучший способ!) Это что-то вроде:

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

Если каждый EAR находится на своем собственном сервере, я думаю, вам нужно посмотреть config.xml, чтобы узнать, что вам нужно.

...