Weblogicの、JVMおよびEAR
質問
私は、生産のWebLogic(10)インスタンス上jmapはJDK1.5ツールを使用してヒープ・ダンプを行うことを計画しています。
実はこのWebLogicインスタンスにデプロイ3 EAR(おそらくより、本当に私がアクセスを持っていないかわからないが)がある。
誰かが、「WebLogicは、各EARのためのJVMを作成する」私に言いました できる人確認これを?
私は、ヒープ・ダンプを行うためのパラメータとしてJVMのPIDを必要とするjmapのでは... 私は3 EARを持っているので、私はPID対応してEAR JVMを知っているか疑問ので、私は3 PIDを持っていると思いますか?
解決
いや - 各WebLogic Server(または任意のJavaプロセス)それはそれは自身のPIDだと自身のJVMの中で実行されます。だから、すべてあなたの耳は、同じヒープ・ダンプに表示されます。
あなたが同じマシン上で実行されている複数のWebLogic Serverインスタンスを使用している場合は、、それぞれが独立したPIDとは別のプロセス
を持っています他のヒント
は、すべてのあなたの耳が同じWebLogicサーバの下にあるので、場合you'lのみダンプに1つのPIDを持って、WebLogicサーバーごとに1つのJVMを持っています。あなただけのps -ef | grep java
ような何かを行う場合でも、あなたはPIDの多くを見ることができました(私はこれはUnixであると仮定している?)そう - 多分管理サーバと管理対象サーバー、多分他の無関係の事例 - しかし、あなたはまだ複数のサーバを有することができますあなたは、WebLogicのJDK_HOMEにそれをフィルタリングすることができます。
一つの方法は、<domains>/servers/<your server>/tmp
ディレクトリに移動し、そこに実行fuser -f <your server>.lok
にすることです。これは、JVMのJavaプロセスになります一つは、そのサーバに関連するすべてのプロセスのPIDを一覧表示します。 (、より良い方法と私は誰かが別のものを指摘すると確信している!)ちょうどjavaプロセスを見つけるための1つの方法(などJDBCのために他のこともある)のようなものです。
cd <domains>/servers/<your server>/tmp
ps -p "`fuser -f <your server>.lok 2>/dev/null`" | grep java
各EARは、独自のサーバーにある場合は、、私はあなたが必要とするかを確認するためのconfig.xmlを見て必要がありますね。