Cosminexus システム運用ガイド

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

5.6.5 JavaVMが異常終了した場合

JavaVMで異常終了が発生した場合の対処方法と,異常終了が発生した場合に出力される情報について説明します。

<この項の構成>
(1) 異常終了時の対処方法
(2) 異常終了時に出力される情報

(1) 異常終了時の対処方法

UNIXの場合,異常終了時には,次の手順で対処してください。なお,Windowsの場合には,この対処は不要です。

  1. 異常終了が発生したマシン上でjavatraceコマンドを実行します。
    javatrace.logファイルが出力されます。javatraceコマンドの実行方法については,「5.4.16 JavaVMのスタックトレース情報の取得」を参照してください。
  2. 取得したjavatrace.logファイルを,エラーリポートファイル(hs_err_pid<プロセスID>.log)とあわせて保守員に送付します。
    エラーリポートファイルの取得方法については,「5.4.9 JavaVM出力メッセージログの取得(標準出力またはエラーリポートファイル)」を参照してください。
  3. snapcoreコマンド(AIXの場合)またはcar_tar_Zコマンド(HP-UX,Linux,Solarisの場合)を実行します。
    JavaVMの実行ファイルやトラブル発生時にロードされていたライブラリ,およびcoreダンプが,pax形式(AIXの場合)またはtar+compress形式のデータアーカイブファイルとして作成されます。
  4. 作成されたアーカイブファイルを,保守員に送付します。

(2) 異常終了時に出力される情報

JavaVMで次の異常終了が発生した場合に出力される情報について説明します。

(a) JavaVM処理中にCヒープ不足が発生した場合

Cヒープが不足すると,次のようなメッセージに続いて,メモリの状態,Javaヒープ情報,およびスタックトレース情報が標準出力およびエラーリポートファイル(hs_err_pid<プロセスID>.log)に出力されます。そのあとで,JavaVMが強制終了されます。

 
Exception in thread <スレッド名称> java.lang.OutOfMemoryError:requested <メモリ確保要求サイズ> bytes [ for <内部調査用メッセージ>] .
 

出力された情報を確認して対処してください。

(b) JavaVM処理中のCヒープ不足以外のOutOfMemoryErrorが発生した場合

J2EEサーバを起動するときのオプションとして-XX:+HitachiOutOfMemoryAbortを設定している場合,次の要因によってOutOfMemoryErrorが発生したときに,メッセージとメモリダンプを出力してJavaVMが強制終了します。出力された情報を確認して対処してください。

強制終了する要因

なお,JavaVM処理中にCヒープ不足になった場合は,このオプションの指定に関係なく強制終了します。

終了時には,次のメッセージと,メモリダンプが出力されます。

 
java.lang.OutOfMemoryError occurred.
JavaVM aborted because of specified -XX:+HitachiOutOfMemoryAbort options.

オプションとして-XX:+HitachiOutOfMemoryStackTraceが設定されている場合は,スタックトレースが出力されたあとで終了します。ただし,あらかじめjava.io.File.deleteOnExitメソッドやjava.lang.Runtime.addShutdownHookメソッドによってJavaVM終了時に実行する処理を登録していた場合も,それらは実行されないで強制終了します。

(c) 内部論理エラーが発生した場合

内部論理エラーが発生すると,エラーが発生したJavaVMの情報,調査用のエラーIDおよび問題が発生したスレッドを示すメッセージが,標準出力およびエラーリポートファイル(hs_err_pid<プロセスID>.log)に出力されます。出力された情報を保守員に送付してください。