5.8.2 Cヒープが不足した場合

Cヒープが不足した場合,次の順序でメッセージ出力およびダンプ出力,またはcoreダンプの生成が実行されます。

  1. Cヒープ不足を示すメッセージログが,エラーリポートファイルおよび標準出力に出力されます。
  2. 1.の実行中にメモリ不足が発生した場合,簡易メッセージが標準出力に出力されます。
  3. Windowsの場合,ワトソンログが起動され,ダンプ出力が実行されます。UNIXの場合,簡易メッセージの出力処理中にさらにメモリ不足が発生したときに,メッセージおよびエラーログファイルの出力処理を中止して,coreダンプを生成します。

それぞれの出力形式を次に示します。

<この項の構成>
(1) Cヒープ不足を示すメッセージログの出力内容
(2) メモリ不足を示すメッセージの出力内容
(3) ワトソンログが正しく出力されたかどうかを示すメッセージの出力内容(Windowsの場合)
(4) coreダンプの生成を示すメッセージの出力内容

(1) Cヒープ不足を示すメッセージログの出力内容

Cヒープ不足を示すメッセージログの出力形式を次に示します。この形式は,エラーリポートファイルと標準出力で共通です。

このようなメッセージが出力された場合は,Cヒープを減らすなど,適切な対策をしてください。

出力項目について次に示します。

表5-26  Cヒープが不足した場合のメッセージログの出力項目

出力項目説明
ThreadNameThread#getName()メソッドで取り出せるスレッド名称が出力されます。
nメモリ確保要求サイズが出力されます。
message保守員による調査に必要な内部メッセージが出力されます。出力されない場合もあります。
Javaヒープ情報Javaヒープの使用状況が出力されます。
スタックトレースメモリ不足の発生したスレッドがJava コードを実行しているスレッドである場合に,スタックトレースが出力されます。
コンパイル処理のようなJavaVMの内部処理を実行するスレッドでメモリ不足が発生した場合には出力されません。

(2) メモリ不足を示すメッセージの出力内容

Cヒープ不足を示すメッセージログが出力されている間にさらにメモリ不足が発生した場合は,処理の続行ができません。この場合は,次の形式の簡易メッセージが標準出力に出力されます。

java.lang.OutOfMemoryError:requested <n> bytes for <message>

出力項目について次に示します。

表5-27 メモリ不足が発生した場合の簡易メッセージの出力項目

出力項目説明
nメモリ確保要求サイズが出力されます。
message保守員による調査に必要な内部メッセージが出力されます。

(3) ワトソンログが正しく出力されたかどうかを示すメッセージの出力内容(Windowsの場合)

簡易メッセージの出力後は,ワトソンログが起動され,ダンプ出力が実行されます。ただし,ワトソンログが正常に出力できない場合がありますので,標準出力に出力される処理結果のメッセージを確認してください。

次のメッセージは,ワトソンログの起動に失敗した場合に出力されます。

WatosonLog process generated.But couldn't generate dump file,because of resource shortage.

次のメッセージは,ワトソンログの起動後,ダンプ出力に失敗した場合に出力されます。

Couldn't generate dump file,because of resource shortage.

これらの処理に成功した場合は,次に示すメッセージが出力されます。ただし,この場合もワトソンログが正常にダンプ出力しない場合があります。このメッセージが出力された場合も,実際にダンプが出力されているかどうかを確認してください。

Although Dr.Watson process finished successfully,dump file isn't always generated.
Check your directory where dump file is stored.

(4) coreダンプの生成を示すメッセージの出力内容

簡易メッセージの出力処理中にさらにメモリ不足が発生した場合,メッセージおよびエラーログファイルの出力処理を中止して,coreダンプを生成します。coreダンプが生成されると,次の形式のメッセージが標準出力に出力されます。

Can't create logs because of memory shortage.
Insufficient memory for malloc. JVM generates core file