jProfilerがJVMを見つけることができません

私はプロダクションサーバー上でjprofilerを起動しました。プロファイリングの後、私はそれをkillしました(kill -9)。

今すぐ私は再びそれを開始しようとしているだけです "無プロファイルのJVMは見つかりませんでした。メッセージ、 しかし、jpsコマンドは、私のアプリケーションが動作していると言います(実際には自分自身で動作することがわかります)。

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

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

0
はい、今私はそれを知っています(
追加された 著者 tsds,
kill -9 は、ターゲットプロセスにクリーンアップの機会を与えません(たとえば、ターゲットJVMから適切に登録解除するなど)。単純な殺しがうまくいきませんでした。
追加された 著者 Mat,

2 答え

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

8
追加された
Windowsとcygwinを使用している場合は、別のtmpディレクトリを使用するため、JProfilerはPIDファイルを見つけることができません。代わりにcmdプロンプトを使用してみてください。
追加された 著者 mmdeas,

look at this QA, it is not possible to unload a Jprofiler agent on a java process unless you kill the jp.

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

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

1
追加された