Cosminexus リファレンス コマンド編

[目次][索引][前へ][次へ]

javagcガーベージコレクションの強制発生

形式

javagc [-i|-f][-v][-s] -p <プロセスID>

機能

メモリリーク,システム障害およびアプリケーションのデバッグのために,プロセスIDが<プロセスID>のjavaプロセスに対して,任意のタイミングでガーベージコレクションを発生させます。

javaプロセスとの通信にはSIGQUITシグナルを使用します。コマンドを実行すると,ガーベージコレクションを発生させるかどうか(Windowsの場合),またはガーベージコレクションを発生させるためにSIGQUITシグナルを送信するかどうか(UNIXの場合)をユーザに確認します。発生させない,または送信しない(n)と回答した場合には,ガーベージコレクションは発生しません(戻り値が1となります)。この確認動作は,-fオプションを指定することで省略できます。

引数

-i
<プロセスID>のプロセスに対して,ガーベージコレクションを発生させるかどうか(Windowsの場合),またはSIGQUITシグナルを送信させるかどうか(UNIXの場合)をユーザに確認します。
このオプションより前に指定した,-fオプションを無効にします。

-f
<プロセスID>のプロセスに対して,ガーベージコレクションを発生させるかどうか(Windowsの場合),またはSIGQUITシグナルを送信させるかどうか(UNIXの場合)をユーザに確認しません。
このオプションより前に指定した,-iオプションを無効にします。

-v
  • -XX:+HitachiVerboseGCオプションが指定されている場合に出力される,日立JavaVMログファイルと同じ内容を,日立JavaVMログファイルに出力します。
  • -XX:+HitachiVerboseGCオプションが指定されている場合,その日立JavaVMログファイルに情報を追加します。
  • -XX:+HitachiVerboseGCPrintDate,-XX:+HitachiVerboseGCIntervalTime,-XX:+HitachiVerboseGCPrintCause,-XX:+HitachiVerboseGCCpuTime,-XX:+HitachiCommaVerboseGCなどの追加オプションが指定されている場合は,その形式に従って出力されます。
  • -XX:HitachiVerboseGCIntervalTimeオプションが指定され,指定時間を経過していない場合でも日立JavaVMログファイルを出力します。
  • -XX:+HitachiVerboseGCオプションが指定されていない場合は,日立JavaVMログファイル作成の規則に従って新規に日立JavaVMログファイルを作成します。

-s
  • -XX:+HitachiVerboseGCオプションが指定されている場合に出力される,日立JavaVMログファイルと同じ内容を,標準出力に出力します。
  • -XX:+HitachiVerboseGCPrintDate,-XX:+HitachiVerboseGCIntervalTime,-XX:+HitachiVerboseGCPrintCause,-XX:+HitachiCommaVerboseGCなどの追加オプションが指定されている場合は,その形式に従って出力されます。
  • -XX:HitachiVerboseGCIntervalTimeオプションが指定され,指定時間を経過していない場合でも日立JavaVMログファイルと同じ内容を標準出力に出力します。

-p <プロセスID>
プロセスIDを指定します。

日立固有のJavaVM拡張オプションについては,マニュアル「Cosminexus リファレンス 定義編」を参照してください。

戻り値

0:
正常終了しました。

1:
異常終了しました。

2:
一定時間内にガーベージコレクション処理終了の応答がありませんでした。

入力例

  1. -iオプションを指定してjavagcコマンドを実行します。
    javagc -i -v -p 8326
  2. Windowsの場合,ガーベージコレクションを発生させるかどうかの確認メッセージが表示されます。UNIXの場合,プロセスIDの確認メッセージが表示されます。
    • Windowsの場合
      Force VM to execute GC ? (y/n)
    • UNIXの場合
      send SIGQUIT to 8326:?(y/n)
  3. Windowsの場合,ガーベージコレクションを発生させる場合はyを,発生させない場合はnを入力します。UNIXの場合,SIGQUITシグナルを送信させる場合はyを,送信させない場合はnを入力します。
    • Windowsの場合
      Force VM to execute GC ? (y/n)y
    • UNIXの場合
      send SIGQUIT to 8326:?(y/n)y

出力例

[VGC]<Wed Mar 17 00:42:30 2004>(Skip Full:0,Copy:0)[Full GC 149K->149K(1984K), 0.0786038 secs][DefNew::Eden: 264K->0K(512K)][DefNew::Survivor: 0K->63K(64K)][Tenured: 85K->149K(1408K)][Perm: 1300K->1300K(1536K)][cause:JavaGC Command]

出力メッセージ

表7-4 javagcコマンドで出力されるメッセージ(Windowsの場合)

項番 メッセージ 説明
1 usage: javagc [-f|-i] [-v] [-s] -p process-id javagcコマンドへの引数の指定が間違っています。
2 javagc: illegal option--<オプション> javagcコマンドに指定した<オプション>が不正です。
3 javagc: can't communicate with process <プロセスID> javagcコマンドで指定したプロセスに問題があるか,通信処理でエラーが発生しているため,通信できません。
4 <プロセスID>: Not owner javagcコマンドで指定した<プロセスID>に0が指定されています。
5 <プロセスID>: Now processing previous request, this request canceled javagcコマンドで指定した<プロセスID>に該当するプロセスは現在ガーベージコレクションを実行中です。javagcコマンドによるガーベージコレクション実行要求はキャンセルされます。
6 javagc: can’t create work file at temporary directory, this request canceled 一時ファイル用ディレクトリに参照・書き込み権限がない場合,ガーベージコレクション要求ファイルが作成できません。このガーベージコレクション実行要求はキャンセルされます。
7 javagc: can't get temporary directory, this request canceled 一時ファイル用ディレクトリが取り出せない場合,ガーベージコレクション要求ファイルが作成できません。このガーベージコレクション実行要求はキャンセルされます。
8 javagc: unexpected error occurred:<エラー原因> javagcコマンド実行中に予期しないエラーが発生しました。
<エラー原因>には,例えば下記のような表示がされます。
  • 作業用メモリ確保に失敗した場合
    malloc systemcall fail (errno=Y)
  • オブジェクトのクローズに失敗した場合
    close systemcall fail (errno=Y)
9 <プロセスID>: Timeout occurred. Java process not responding. javagcコマンドで指定した<プロセスID>に該当するプロセスから,一定時間内にガーベージコレクション処理終了の応答がありませんでした。または,javagcコマンドで指定した<プロセスID>に該当するプロセスがjavaプロセス以外でした。
10 javagc : please delete <削除できなかったファイル名> in <削除できなかったファイルのフルパス> javagcコマンドを終了したときに,内部ファイルを削除できませんでした。削除できなかったファイルのフルパスにある,削除できなかったファイルを削除してください。

 

表7-5 javagcコマンドで出力されるメッセージ(UNIXの場合)

項番 メッセージ 説明
1 usage: javagc [-f|-i] [-v] [-s] -p process-id javagcコマンドへの引数の指定が間違っています。
2 javagc: illegal option--<オプション> javagcコマンドに指定した<オプション>が不正です。
3 <プロセスID>: No such process javagcコマンドの引数に指定した<プロセスID>に該当するプロセスが存在していません。
4 <プロセスID>: Not owner 実行ユーザは,javagcコマンドの引数に指定した<プロセスID>に該当するプロセスのオーナーではありません。
5 <プロセスID>: Now processing previous request, this request canceled javagcコマンドで指定した<プロセスID>に該当するプロセスは現在ガーベージコレクションを実行中です。javagcコマンドによるガーベージコレクション実行要求はキャンセルされます。
6 javagc: can't create work file at /tmp, this request canceled /tmpに参照および書き込み権限がないため,ガーベージコレクション要求ファイルが作成できません。javagcコマンドによるガーベージコレクション実行要求はキャンセルされます。
7 javagc: unexpected error occurred:<エラー原因> javagcコマンド実行中に予期しないエラーが発生しました。
<エラー原因>には,例えば下記のような表示がされます。
  • 作業用メモリ確保に失敗した場合
    malloc systemcall fail (errno=Y)
  • オブジェクトのクローズに失敗した場合
    close systemcall fail (errno=Y)
8 <プロセスID>: Timeout occurred. Java process not responding. javagcコマンドで指定した<プロセスID>に該当するプロセスから,一定時間内にガーベージコレクション処理終了の応答がありませんでした。または,javagcコマンドで指定した<プロセスID>に該当するプロセスがjavaプロセス以外でした。
9 javagc : please delete <削除できなかったファイル名> in <削除できなかったファイルのフルパス> javagcコマンドを終了したときに,内部ファイルを削除できませんでした。削除できなかったファイルのフルパスにある,削除できなかったファイルを削除してください。

注意事項