5.8.2 Cヒープが不足した場合
Cヒープが不足した場合,次の順序でメッセージ出力およびダンプ出力,またはcoreダンプの生成が実行されます。
-
Cヒープ不足を示すメッセージログが,エラーリポートファイルおよび標準出力に出力されます。
-
1.の実行中にメモリ不足が発生した場合,簡易メッセージが標準出力に出力されます。
-
UNIXの場合,簡易メッセージの出力処理中にさらにメモリ不足が発生したときに,メッセージおよびエラーログファイルの出力処理を中止して,coreダンプを生成します。
それぞれの出力形式を次に示します。
(1) Cヒープ不足を示すメッセージログの出力内容
Cヒープ不足を示すメッセージログの出力形式を次に示します。この形式は,エラーリポートファイルと標準出力で共通です。
-
Windowsの場合
Exception in thread <ThreadName> java.lang.OutOfMemoryError:requested <n> bytes [ for <message>]. Memory Status ------------- Memory in use :使用率% Physical memory :空きメモリサイズ /総メモリサイズ free Virtual memory :空きメモリサイズ/総メモリサイズ free Paging file :空き容量/総容量 free Heap Status ----------- <Javaヒープ情報> ----------- Stack Trace ----------- <スタックトレース> JVM Internal Memory Status -------------------------- <独自メモリ管理機能で管理している領域情報> Insufficient memory for malloc. JVM generates core file. -----------
-
AIX,またはLinuxの場合
Exception in thread <ThreadName> java.lang.OutOfMemoryError: requested <n> bytes [for <message>]. Memory Status ------------- maximum size of data segment soft(current) limit :getrlimit(RLIMIT_DATA)で取得したソフトリミット値 kbytes (16進数) hard limit :getrlimit(RLIMIT_DATA)で取得したハードリミット値 kbytes (16進数) current end of the heap :sbrk(0)によって取得した値 JVM allocation size by malloc :JavaVMが割り当てたメモリサイズ kbytes (16進数) malloc information total space in arena :mallinfo.arenaの値 number of ordinary blocks :mallinfo.ordblksの値 number of small blocks :mallinfo.smblksの値 number of holding blocks :mallinfo.hblksの値 space in holding block headers :mallinfo.hblkhdの値 space in small blocks in use :mallinfo.usmblksの値 space in free small blocks :mallinfo.fsmblksの値 space in ordinary blocks in use :mallinfo.uordblksの値 space in free ordinary blocks :mallinfo.fordblksの値 cost of enabling keep option :mallinfo.keepcostの値 Heap Status ----------- <Javaヒープ情報> ----------- Stack Trace ----------- <スタックトレース> ----------- JVM Internal Memory Status -------------------------- <独自メモリ管理機能で管理している領域情報>
このようなメッセージが出力された場合は,Cヒープを減らすなど,適切な対策をしてください。
出力項目について次に示します。