18

最近、JDK6u20(Linux、32ビットおよび64ビット)からJDK6u23にアップグレードしました。それ以降、ツールjstackおよびjstatを使用して、実行中のプロセスから監視情報を取得することはできなくなりました。JDK6u20に戻すと、すべて正常に動作します。

Tomcat 6を実行しています。このフォーラムの投稿によると、他の人も同じ問題を抱えています:http: //forums.oracle.com/forums/thread.jspa?threadID=2151967&tstart=0

単純なプレーンJavaプロセスを実行し、ツールを使用すると機能します。

Jstackによると:ソケットファイルを開くことができません:ターゲットプロセスが応答しないか、HotSpot VMがロードされていませんターゲットプロセスが応答していない場合は、-Fオプションを使用できます。

Jstatによると:19799が見つかりません

Jpsを使用しても、実行中のプロセスはまったく表示されないため、問題はJDK6u23およびJDK6u24のより一般的な性質であると思います。新しいホットスポットエンジンが搭載されています。たぶん、TomcatとそのHotspotv19との組み合わせでは何かが機能しません。

何か案が?ヘルプをいただければ幸いです。

PSもちろん、同じユーザーとして実行し、他に何も変更していません。JDKのみ。

4

2 に答える 2

12

Oracleフォーラムで可能な回答を見つけました:

6u23/24 でこの問題が発生したのは事実ですが、これは jps のバグではありません。むしろ、VM 自体の動作の変更です。GNU/Linux では、Jps などは /tmp のみを参照しているように見えますが、必ずしも CATALINA_TMPDIR を参照しているとは限りません。設定されているかどうかにかかわらず、「-Djava.io.tmpdir=/tmp」に変換される CATALINA_TMPDIR=/tmp をエクスポートしてみてください。Tomcat プロセスを再起動すると、Tomcat のデータが「/tmp/hsperfdata_/」として表示され、Jps はおそらく再び働きます。

于 2011-03-03T22:14:46.637 に答える
4

Tomcat の temp-dir に接続するように jps または jstat に指示する方法については、java プロセスが実行されている場合でも jps が出力を返さないを参照してください。

于 2011-03-07T15:30:50.867 に答える