■スレッドダンプツールとは
スレッドダンプツールは、Java VMのスレッドダンプ(コマンドプロンプトから[Ctrl]キーを押しながら[Break]キーを押し採取したスレッドダンプ)と同じく、各スレッドの状態を出力し、プログラム全体や、各スレッドの実行状況を解析する助けとなるスレッドダンプを出力する機能です。
スレッドダンプツールは、Java VMのスレッドダンプ出力に以下の機能を追加しています。
ファイル出力
オプション(-f)で指定したファイルに、スレッドダンプを出力できます。
ヘッダー、フッター出力
標準出力や標準エラー出力にスレッドダンプを出力した場合、アプリケーションのログファイル(ServletやEJBの標準出力、あるいはJava VMの出力を格納するファイルなど)に、そのスレッドダンプが含まれることになります。ヘッダーやフッターは、そのログファイルを参照する場合に、目印となる情報です。(-fオプションを指定した場合も出力します。)
ヘッダーには、スレッドダンプの採取日時、コマンドラインおよび、メモリの使用状況の情報が含まれます。
なお、Java VMのスレッドダンプ出力の操作方法は、“チューニングガイド”の[JDK/JREのチューニング] > [チューニング/デバッグ技法] > [スレッドダンプ]を参照してください。
■動作環境
製品添付のJDK/JRE
■2種類のコマンド
Windows Vista(R)/Windows Server(R) 2008で“セッション0分離”が導入されました。これにより、Windowsサービス(システム内に常駐して動作するプログラム)はセッション番号0番で動作し、通常のアプリケーション(ユーザが起動するプログラム)はセッション番号1番以降で動作します。Windowsサービスとして動作するサーバアプリケーションはセッション番号0番で動作するため、ワークユニットとして動作しているServletやEJBなどのサーバアプリケーションのスレッドダンプを採取するには、スレッドダンプツールもWindowsサービスとして動作する必要があります。
そのため、スレッドダンプツールには、通常のアプリケーションとして動作するthdumpコマンドと、Windowsサービスとして動作するthdumpSVCコマンドの2つがあります。
次の条件に一致する場合は、thdumpSVCコマンドを使用してスレッドダンプを採取してください。
動作環境がWindows Vista(R) / Windows Server(R) 2008 / Windows(R) 7 / Windows Server(R) 2008 R2で、かつ
スレッドダンプ採取対象のJavaプログラムが、Windowsサービスとして動作している場合
なお2つのコマンドには、機能的な相違点はありません。
■格納先
格納先は次のとおりです(製品を“C:\Interstage”にインストールした場合)。
thdumpコマンド:
C:\Interstage\jdk5\tools\thdump (JDK 5.0)
C:\Interstage\jre5\tools\thdump (JRE 5.0)
C:\Interstage\jdk6\tools\thdump (JDK 6)
C:\Interstage\jre6\tools\thdump (JRE 6)
thdumpSVCコマンド:
C:\Interstage\jdk5\tools\thdump\thdumpSVC (JDK 5.0)
C:\Interstage\jre5\tools\thdump\thdumpSVC (JRE 5.0)
C:\Interstage\jdk6\tools\thdump\thdumpSVC (JDK 6)
C:\Interstage\jre6\tools\thdump\thdumpSVC (JRE 6)