thdumpSVCコマンドは、Windowsサービスとして動作するJavaプログラムのスレッドダンプを採取する場合に使用します。
スレッドダンプの採取は、次の手順で操作します。
Windowsサービス登録
スレッドダンプツール開始
スレッドダンプツール停止
Windowsサービス削除
2と3の操作を繰り返すことにより、複数のスレッドダンプを採取することができます。
スレッドダンプの採取が完了したら、4の“Windowsサービス削除”を行ってください。
Windowsサービス登録/削除にはWindows(R)の“InstallUtil.exe”を内部的に使用します。
スレッドダンプツールの開始および終了には、“sc.exe”を使用します。
スレッドダンプツールの操作は、管理者権限で実行したコマンドプロンプトから操作する必要があります。管理者権限でコマンドプロンプトを実行するには、コマンドプロンプトの実行ファイルをエクスプローラー上で右クリックし、“管理者権限で実行する”を選択します。
thdumpSVCコマンドを使用するためには、Microsoft(R) .NET Framework 4 を動作環境にインストールしてください。
Windowsサービスへの登録方法
スレッドダンプツールをWindowsサービスとして登録するには、thdumpSVCコマンドの格納先をカレントディレクトリにするか、thdumpSVCコマンドをフルパスで指定して、コマンドを実行してください。
thdumpSVC -Install |
なお同じシステムで登録可能なスレッドダンプツールは1つだけです。2つ目以降を登録しようとした場合、コマンド実行時エラーとなります。
Windowsサービスに登録できたかどうかは、Windows(R)の管理ツール“サービス”で確認できます。名前項目に“Thdump Service”が表示されていれば、登録に成功しています。
コマンド実行後に、画面にWindows(R)の制御によるメッセージが表示されます。
正常に登録できた場合は、メッセージの最後に次の文字列が表示されます。
コミット段階が正常に終了しました。 |
異常が発生した場合は、メッセージの最後に次の文字列が表示されます。
トランザクション インストールが完了しました。 |
すでにスレッドダンプツールの登録が完了している場合には異常が発生しますので、Windows(R)の管理ツール“サービス”でスレッドダンプツールの有無を確認してください。
スレッドダンプツールの開始方法
スレッドダンプツールを開始するには、以下のコマンドを実行してください。
sc start thdumpService [-f logfile | -j] -p processid |
※各オプションの詳細は、“A.3.3 オプション”を参照してください。
コマンド実行後に、スレッドダンプ採取が行われます。
なお同じシステムで開始可能なスレッドダンプツールは1つだけです。すでにスレッドダンプツールが動作している場合に、上記コマンドを実行すると、コマンド実行時エラーとなります。
スレッドダンプツールを開始できたかどうかは、Windows(R)の管理ツール“サービス”で確認できます。状態項目に“開始”が表示されていれば、開始に成功しています。
コマンド実行後に、画面にscコマンドの制御によるメッセージが表示されます。
異常が発生した場合には、次のどれかの文字列が表示されます。なお、異常時のメッセージ以外は、無視しても問題ありません。
“[SC] StartService FAILED nnnn:”(nnnnは数字)
“[SC] StartService: OpenService FAILED nnnn:”(nnnnは数字)
スレッドダンプツールが未登録の場合か、すでにスレッドダンプツールが開始している場合には異常が発生しますので、Windows(R)の管理ツール“サービス”でスレッドダンプツールの状況を確認してください。
異常時のメッセージの出力例を、次に示します。
スレッドダンプツールが未登録の場合:
“[SC] StartService: OpenService FAILED 1060:”
すでにスレッドダンプツールが開始している場合:
“[SC] StartService FAILED 1056:”
スレッドダンプツールの停止方法
スレッドダンプツールを停止するには、以下のコマンドを実行してください。
sc stop thdumpService |
スレッドダンプツールを停止できたかどうかは、Windows(R)の管理ツール“サービス”で確認できます。状態項目が空白であれば、停止に成功しています。
コマンド実行後に、画面にscコマンドの制御によるメッセージが表示されます。
異常が発生した場合には、次のどれかの文字列が表示されます。なお、異常時のメッセージ以外は、無視しても問題ありません。
“[SC] ControlService FAILED nnnn:”(nnnnは数字)
“[SC] OpenService FAILED nnnn:”(nnnnは数字)
スレッドダンプツールが未登録の場合か、すでにスレッドダンプツールが停止している場合には異常が発生しますので、Windows(R)の管理ツール“サービス”でスレッドダンプツールの状況を確認してください。
異常時のメッセージの出力例を、次に示します。
スレッドダンプツールが未登録の場合:
“[SC] OpenService FAILED 1060:”
すでにスレッドダンプツールが停止している場合:
“[SC] ControlService FAILED 1062:”
Windowsサービスからの削除方法
スレッドダンプツールをWindowsサービスから削除するには、thdumpSVCコマンドの格納先をカレントディレクトリにするか、thdumpSVCコマンドをフルパスで指定して、コマンドを実行してください。
thdumpSVC -Install -u |
Windowsサービスから削除できたかどうかは、Windows(R)の管理ツール“サービス”で確認できます。名前項目に“Thdump Service”が表示されていなれば、削除に成功しています。
コマンド実行後に、画面にWindowsの制御によるメッセージが表示されます。
正常に削除できた場合は、メッセージの最後に次の文字列が表示されます。
サービス 'thdumpService' は正常にシステムから削除されました。 |
異常が発生した場合は、メッセージの最後に次の文字列が表示されます。
アンインストール中に例外が発生しました。この例外は無視され、アンインストール続行します。ただし、アンインストール完了後、 |
すでにスレッドダンプツールが削除されている(未登録の)場合には異常が発生しますので、Windows(R)の管理ツール“サービス”でスレッドダンプツールの有無を確認してください。
エラーログファイル
Windowsサービスにはコンソールがありません。スレッドダンプ採取時にエラーが発生したかどうかを確認するには、エラーログファイルを参照してください。
エラーログファイルの格納先は、thdumpSVCコマンドの格納先ディレクトリです。thdumpSVCコマンドの格納先ディレクトリは書込み可能な状態にしてください。
エラーログファイルは、Windowsサービス登録時に作成され、Windowsサービス削除までの間に発生したエラーを記録します。問題なくスレッドダンプを取得できた場合は、エラーログファイルのサイズは0バイトになります。