0

Tomcat を再起動する必要なく、サービスとして実行される Tomcat で Web アプリケーションのスレッド ダンプを作成する必要がありました。jconsole、jvisualvm、jstack を接続しようとしましたが、成功しませんでした。

  • Tomcat は jmx リモート対応ではありません。(ただし、プロパティを導入できません-再起動できません)
  • サービスと同じユーザーからアプリケーションを実行しようとした、TEMP、TMP フォルダを変更する
  • ローカルで実行したい - tomcat と同じサーバー上で、構成が不要であるため (したがって、再起動は必要ありません) (「注: この構成は、Tomcat をリモートで監視する場合にのみ必要です。 Tomcat が実行されているのと同じユーザーを使用して、ローカルで監視します。")
  • jConsole では、プロセスが灰色で表示され、表示されない場合があります - 接続できませんでした
  • jStack の場合: アタッチするためのメモリまたは権限が不足しています
  • Tomcat は Windows マシンで実行されています

何か案は?

4

3 に答える 3

2

jcmd をお勧めしたかったのですが、jstat やその他のツールと同じようにローカル アタッチに問題があると思います。

次の2つのGoogleヒットによると、「psexec -s jstack PID」が解決策のようです(私は試していません)

https://www.assetbank.co.uk/support/documentation/knowledge-base/how-to-take-a-java-thread-dump/ https://access.redhat.com/solutions/19170

于 2014-11-28T07:34:57.910 に答える
1

Unix で実行している場合は、kill -3 <pid>. これにより、スレッド ダンプが に出力されcatalina.outます。

Tomcat サービスが実行されているのと同じユーザーである必要があります。

于 2014-11-27T15:37:04.220 に答える
0

よくある質問:

于 2014-11-29T18:33:48.560 に答える