javacorecoreファイルとスレッドダンプの取得/UNIXの場合

形式

javacore [-i|-f] [-force] -p <プロセスID>

機能

コマンド実行時のcoreファイルとスレッドダンプを同時に取得します。なお,このコマンドは,UNIX用です。

引数

-i
coreファイルおよびスレッドダンプの出力処理の実行を確認するメッセージが表示されます。表示されたメッセージに対してyまたはnを入力します。このとき,yを入力するとスレッドダンプが出力されます。nを入力すると,何も出力しないで処理を終了します。省略した場合,-fオプションが指定されないかぎり,このオプションは有効です。
-f
-iオプションを無効にします。省略した場合,-iオプションが有効になります。
-force
javaプロセスが作成する/tmp/hsperfdata_<ユーザ名>/<プロセスID>ファイルの有無の確認をしないで,-pオプションで指定したプロセスIDのjavaプロセスに対してcoreを出力させます。
-p <プロセスID>
<プロセスID>には,coreファイルとスレッドダンプを取得するjavaプログラムのプロセスIDを指定します。

戻り値

0:
正常終了しました。
1:
異常終了しました。
2:
一定時間内にcore生成処理終了の応答がありませんでした。

入力例

  1. -fオプションを省略してjavacoreコマンドを実行します。

    javacore -p 8326

  2. coreファイルおよびスレッドダンプの出力処理の実行を確認するメッセージが表示されます。

    send SIGQUIT to 8326:?(y/n)

  3. coreファイルおよびスレッドダンプを取得する場合はyを,取得しない場合はnを入力します。

    send SIGQUIT to 8326:?(y/n)y

  4. coreファイルおよびスレッドダンプを取得すると,実行中のjavaプログラムでは次のメッセージが出力されます。
    Now generating core file (javacore8662.030806215140​.core)...
    done
    (スレッドダンプを出力)
    Writing Java core to javacore8662.030806215140​.txt... OK
  5. 実行中のjavaプログラムは,カレントディレクトリに次のファイルを作成し,プログラムを継続します。
    coreファイル
    javacore<プロセスID>.<日時>.core
    スレッドダンプ
    javacore<プロセスID>.<日時>.txt

出力メッセージ

次のエラーメッセージまたは警告メッセージを出力した場合,coreファイルやスレッドダンプは取得されません。

表10-6 javacoreコマンドで出力されるエラーメッセージ

項番エラーメッセージ説明
1usage: javacore [-f|-i] [-force] -p process-idコマンドの引数が不正です。
2javacore: can't create work file at /tmp, this request canceled/tmpに参照および書き込み権限がありません。
3javacore: illegal option --<オプション>コマンドの引数に指定した<オプション>が不正です。
4javacore: unexpected error occurred:<エラー原因>コマンド実行中に予期しないエラーが発生しました。
5javacore: please delete <削除できなかったファイル名> in <削除できなかったファイルのフルパス>コマンド終了時にjavacoreコマンドの内部処理で作成したファイルを削除できませんでした。<削除できなかったファイルのフルパス>にある,削除できなかったファイルを削除してください。
6<プロセスID>: No such processjavacoreコマンドの引数に指定した<プロセスID>に該当するプロセスがありません。または,javacoreコマンドで指定した<プロセスID>に該当するプロセスがjavaプロセス以外でした。
7<プロセスID>: Not owner実行ユーザは,コマンドの引数に指定した<プロセスID>に該当するプロセスのオーナーではありません。
8<プロセスID>: Now processing previous request, this request canceledコマンドの引数に指定した<プロセスID>のプロセスが現在coreを生成中です。
9<プロセスID>: Timeout occurred. Java process not responding.コマンドの引数に指定した<プロセスID>に該当するプロセスから,一定時間内にcore出力処理終了の応答がありませんでした。
なお,HP-UXでは,次に示す場合にもこのメッセージが出力されて,javacoreコマンドが終了することがあります。core.<プロセスID>が対象のJavaプロセスのカレントディレクトリに生成されて,サイズが徐々に増えているときは,処理が正常に実行されています。Javaプロセスを停止させないようにしてください。
  • メモリ使用量が1ギガバイトを超えるようなJavaプロセスに対してjavacoreコマンドを実行した場合
  • システムが高負荷状態の時にjavacoreコマンドを実行した場合

注意事項