- PR -

JAVA スレッドダンプの取得方法

投稿者投稿内容
YOKOCHIN
会議室デビュー日: 2007/09/26
投稿数: 7
投稿日時: 2007-10-01 11:29
インギさん
>当初の方法で取得できていたということでしょうかね?
>シャットダウンする必要はないと思います。

killした後にcatalina.outを見てもスレッドダンプが出力されません。。。
1〜2分ぐらい待ってみてもダメでした。
psで確認するといつまでもkillしたプロセスが残っているので
tomcatをシャットダウンしてみたら出力されました。
その後、何回やってもtomcatをシャットダウンしないと出力されません。
当方の環境・設定がおかしいのでしょうか!?
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-10-01 12:48
kill -3 は SIGQUIT シグナルを送るものです。
これを受けても JVM は死にません。
スレッドダンプを吐いてそのまま処理を続行します。
#でないと複数回のスレッドダンプが取得できませんね

シャットダウンしないとスレッドダンプが記録されないのは妙ですね。
通常は kill -3 を実行したタイミングで即座に記録されます。
YOKOCHIN
会議室デビュー日: 2007/09/26
投稿数: 7
投稿日時: 2007-10-01 17:00
>シャットダウンしないとスレッドダンプが記録されないのは妙ですね。
>通常は kill -3 を実行したタイミングで即座に記録されます。

今後の障害時の対応も考え、正規!?の方法で
スレッドダンプが出力できるように調べてみます。
この辺が気になっていますが設定した覚えはないんですよね。。。

↓↓↓solarisの例↓↓↓
http://interstage.fujitsu.com/jp/technical/faq/apserver/v8/aps_jdk/faqmwpaps008.html

↓↓↓起動オプション↓↓↓
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/tooldocs/win32/java.html#options
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2007-10-01 21:15
引用:

YOKOCHINさんの書き込み (2007-10-01 11:29) より:
psで確認するといつまでもkillしたプロセスが残っているので
tomcatをシャットダウンしてみたら出力されました。
その後、何回やってもtomcatをシャットダウンしないと出力されません。


良くは分かりませんが、どこかでバッファに溜まっていて、flush しないと見えないのではないでしょうか?
たとえばですが、試しに kill -3 を何回も連続して送ったらバッファが満杯になってそのうち出力されそうな気もするのですが、どうでしょうか。

--
unibon {B73D0144-CD2A-11DA-8E06-0050DA15BC86}
YOKOCHIN
会議室デビュー日: 2007/09/26
投稿数: 7
投稿日時: 2007-10-06 00:52
unibonさん

>良くは分かりませんが、どこかでバッファに溜まっていて、flush しないと見えないのでは
>ないでしょうか?
>たとえばですが、試しに kill -3 を何回も連続して送ったらバッファが満杯になって
>そのうち出力されそうな気もするのですが、どうでしょうか。

killを繰り返し実行しましたが、スレッドダンプは出力されませんでした。
引き続き調べてみます。

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