- PR -

tomcat4.1.3のスレッドダンプの取得方法について

投稿者投稿内容
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-03-15 23:14
標準出力、標準エラー出力をリダイレクトさせると DOS 画面にはメッセージは表示されなくなります。
ぜんぶ console.log に記録されるようになります。
DOS 画面にいろんな文字情報が流れているということは設定箇所が違うみたいですね。

カーニーさんの紹介されている方法も試してみてはいかがでしょうか。
カーニー
ぬし
会議室デビュー日: 2003/09/04
投稿数: 358
お住まい・勤務地: 東京
投稿日時: 2007-03-16 10:33
なんか難しく考えすぎていませんか?
%CATALINA_HOME%\bin\startup.batで起動しているんですよね?

startup.batもcatalina.batも変更しないで、

startup.bat > console.log

だけでいいと思うんですが。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-03-16 10:50
> startup.bat > console.log
startup.bat の内部で catalina.bat を呼び出していて、catalina.bat の内部で start java .... と別のDOS窓を開いています。
なので startup.bat の出力をリダイレクトしてもスレッドダンプはとれないんだと思います。

[ メッセージ編集済み 編集者: インギ 編集日時 2007-03-16 10:54 ]
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-03-16 11:13
引用:

>start java -cp foobar 起動クラス
という感じに書いてあったら、起動時に指定するのではなく、スクリプト内部で
>start java -cp foobar 起動クラス > console.log 2>&1
という感じに書いてあげてください。


ウソでした。DOS の基本を勉強しないといけないのは私ですね。
start ではリダイレクトできない(?)ですね。
bin> start echo foobar > foobar.txt

bin>type foobar.txt

bin>


catalina.bat の
----------
set _EXECJAVA=start "Tomcat" %_RUNJAVA%
goto gotTitle
:noTitle
set _EXECJAVA=start %_RUNJAVA%
----------
という部分を以下のように書き換えればリダイレクトできるかもしれません。
----------
set _EXECJAVA=%_RUNJAVA%
goto gotTitle
:noTitle
set _EXECJAVA=%_RUNJAVA%
----------

#そもそも start を使ったときにもリダイレクトする方法があるかもしれませんが。
ちゃんと確認せずにあれこれ言って混乱させてしまって申しわけありません。今回も確認していません。
カーニー
ぬし
会議室デビュー日: 2003/09/04
投稿数: 358
お住まい・勤務地: 東京
投稿日時: 2007-03-16 11:25
引用:

インギさんの書き込み (2007-03-16 10:50) より:
> startup.bat > console.log
startup.bat の内部で catalina.bat を呼び出していて、catalina.bat の内部で start java .... と別のDOS窓を開いています。
なので startup.bat の出力をリダイレクトしてもスレッドダンプはとれないんだと思います。



おっと、これは失礼しました。
いちご
ベテラン
会議室デビュー日: 2007/03/13
投稿数: 80
投稿日時: 2007-03-16 19:29
>>インギさん
 ご助言賜りました以下の方法で、見事、ファイルにリダイレクトできました。
 ファイルに吐かれているのを確認できたとき、かなりの感動をしてしまいました。
インギさん すごい♪
 有難うございます。
 今後とも何卒宜しくお願いいたします。

***************************************
catalina.bat の
----------
set _EXECJAVA=start "Tomcat" %_RUNJAVA%
goto gotTitle
:noTitle
set _EXECJAVA=start %_RUNJAVA%
----------
という部分を以下のように書き換えればリダイレクトできるかもしれません。
----------
set _EXECJAVA=%_RUNJAVA%
goto gotTitle
:noTitle
set _EXECJAVA=%_RUNJAVA%
----------
***************************************
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-03-16 20:02
上手くいったようで何よりです。

さて、トラブルシューティングの本番はこれからです。
フリーズが発生したら必ず「複数回」(30秒間隔で3回とか)スレッドダンプを取得しましょう。
1回分のダンプではどのスレッドが動いていてどのスレッドが動いていないか分からないからです。
で、スレッドダンプが取得できたらファイルをバックアップして、侍で解析しましょう。
#エディタなどでも読めますがしんどいです
http://yusuke.homeip.net/samurai/

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