- PR -

JAVAのスレッドダンプをログに吐き出したい

1
投稿者投稿内容
にゃんこ
会議室デビュー日: 2005/08/22
投稿数: 4
投稿日時: 2005-08-29 18:33
こんにちは、
JAVA のスレッドダンプを取得するコマンドがあります。

ps -ef | grep java

このコマンドで表示する結果をログに出力するコマンドが
あったら教えてください。

よろしくお願いします。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2005-08-30 00:42
引用:
JAVA のスレッドダンプを取得するコマンドがあります。


これってkill -QUITのことですよね?

JVMプロセスがSIGQUITを受信すると、JVMが標準出力(エラーかも?)に
スレッドダンプを出力するだけなので、アプリケーション自身、または
JVMを起動するスクリプト等でファイルに出力するように切り替えて
いない場合は無理かと思います。
にゃんこ
会議室デビュー日: 2005/08/22
投稿数: 4
投稿日時: 2005-08-30 09:00
あしゅさん、ご回答ありがとうございます。

ほぼ自己レス状態ですが、

ps -ef | grep java
でJAVAのスレッド一覧表示し、JAVA本体のpidをxxxとすると、
kill -3 xxx
と入力すると
<tomcat_home>/logs/catalina.out
にダンプされることが分かりました。

最初の数行ですが、以下のような出力があります。

Full thread dump Java HotSpot(TM) Client VM (1.4.0_04-b04 mixed mode):

"AWT-Shutdown" prio=1 tid=0x0x82cecd8 nid=0x4ad waiting on monitor [4e1ba000..4e1ba8ec]
at java.lang.Object.wait(Native Method)
- waiting on <0x44e801c8> (a java.lang.Object)
at java.lang.Object.wait(Object.java:426)
at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
- locked <0x44e801c8> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:536)

少し最初の質問とはずれますが、ダンプされた記録からdead lockがおきているか否かを判断するにはどうすればよいでしょうか?参考になるURL等ありましたら、教えてください。
1

スキルアップ/キャリアアップ(JOB@IT)