2012-02-06 18 views
0

私のプロダクションサーバーでjprofilerを起動しました。プロファイリングの後、私はそれをkillしました(kill -9)。jProfilerがJVMを見つけることができません

私はもう一度それを開始しようとしていて、「入手していないJVMは見つかりません」だけを受け取ろうとしています。メッセージ、 しかし、jpsコマンドは私のアプリケーションが動作していると言います(実際に自分で動作することがわかります)。

jprofilerは、現時点ではどのjvmsがプロファイルされているかに関する情報をいくつかのファイルに保存しています。 killコマンドは、このファイルを更新できないようにしています。では、どうすれば手動でクリーニングできますか?

p.s.私はまだjprofileを削除して解凍しようとしましたが、まだ動作していません。

+0

'kill -9'は、ターゲットプロセスにクリーンアップの機会を与えません(たとえば、あなたが知っているように、ターゲットJVMから適切に登録解除します)。単純な殺しがうまくいきませんでした。 – Mat

+0

はい、今私はそれを知っている( – tsds

答えて

8

JProfilerは、JDKの一部である「Attach API」を介してJVMを検出します。ホットスポットJVMによって作成される$TMP/hsperfdata_$USERディレクトリを見てください。実行中のすべてのJVMのPIDファイルが含まれている必要があります。そうでない場合は、ディレクトリを削除してすべてのJVMを再起動します。

+2

私と同じ問題を抱えている人のためのメモ:Windowsでcygwinを使用している場合、別のtmpディレクトリを使用するため、JProfilerはPIDファイルを見つけることができません代わりにcmdプロンプトを使用してみてください。 – mmdeas

1

look at this QA jpをkillしない限り、JavaプロセスでJprofilerエージェントをアンロードすることはできません。

本当にエージェントを殺すことができるかわかりません。

"プロファイルされていないJVMは見つかりませんでした。 Jprofilerを2回起動すると、メッセージが表示されます。 監視対象のJavaアプリケーションを再起動してください。

関連する問題