7.8.6 -XX:[+|-]HitachiOutOfMemoryStackTrace
OutOfMemoryError発生時に、例外情報とスタックトレースをJavaVMログファイルへ出力します。
説明
OutOfMemoryError発生時に、例外情報とスタックトレースをJavaVMログファイルに出力するかどうかを指定します。
- 出力形式
-
[id] [Thread:thread_id]<date>[java.lang.OutOfMemoryError : requested size bytes (cause) : reason : thread_count threads exist] [id] [Thread:thread_id] stack_trace
出力内容を次に説明します。
出力項目
出力内容
id
OOM(JavaVMログファイル識別子)。
thread_id
スレッドID(スレッドダンプに出力されているtid)。
date
OutOfMemory例外発生日時。
size
確保しようとしたメモリーのサイズ(単位:バイト)が出力されます。-XX:-HitachiOutOfMemorySizeオプションが指定されている場合、出力されません。
なお、次の場合は要求したメモリーサイズが取り出せません。これらの場合は、サイズとして「unknown」が出力されます。
-
Javaのメモリー確保機能を使用しないで、明示的にOutOfMemoryErrorをスローした場合
標準クラスライブラリーによってスローされるものも含みます。例えば、「throw new OutOfMemoryError();」などの処理によってスローされた場合、メモリーサイズは出力できません。
-
クラスロード時のverifierによってOutOfMemoryErrorが発生した場合
cause
例外発生要因種別※。ただし、-XX:-HitachiOutOfMemoryCauseオプションが指定されている場合は出力されません。
reason
例外発生理由。スレッドの作成に失敗した場合に出力されます。
thread_count
OutOfMemoryError発生時のスレッド数。作成に失敗したスレッド数も含みます。
stack_trace
スタックトレース
- 注※
-
例外発生要因種別を次に示します。
表7‒8 例外発生要因種別一覧 項番
要因メッセージ
説明
1
C Heap
Cヒープ確保時の例外
2
Java Heap
Javaヒープ確保時の例外
3
Meta Space
Metaspace確保時の例外
4
Compressed Class Space
Compressed Class Space確保時の例外
5
Unknown
上記例外を特定できない場合
6
Thread Limit
スレッド数の上限値設定機能(-XX:HitachiThreadLimitオプション)を指定した場合に、作成したスレッド数が指定した上限値を超えたときの例外
-
書式
-XX:[+|-]HitachiOutOfMemoryStackTrace
指定できる値
型:String
- -XX:+HitachiOutOfMemoryStackTrace
-
OutOfMemoryError発生時に、例外情報とスタックトレースをJavaVMログファイルに出力します。
スタックトレースは1スタックごとにバッファーに格納し、コード変換したあとに出力します。スタックトレースの出力は、OutOfMemoryErrorがスローされるたびに行われるため、OutOfMemoryErrorをキャッチして再スローした場合には複数回出力されます。なお、スレッド作成時にOutOfMemoryErrorとなった場合は、スタックトレースは出力されません。
- -XX:-HitachiOutOfMemoryStackTrace
-
OutOfMemoryError発生時に、スタックトレースをJavaVMログファイルに出力しません。
デフォルト値
- 定義項目の省略
-
-XX:-HitachiOutOfMemoryStackTrace
出力例
[OOM][Thread: 0x00062fd0] <Wed Mar 17 00:41:17 2004> [java.lang.OutOfMemoryError :requested 400000 bytes.(C Heap): unable to create thread : 1500 threads exist] [OOM][Thread: 0x00062fd0] at java.lang.Thread.start(Native Method) [OOM][Thread: 0x00062fd0] at sub1.<init>(Thread0012.java:22) [OOM][Thread: 0x00062fd0] at Thread0012.test01(Thread0012.java:73) [OOM][Thread: 0x00062fd0] at Thread0012.main(Thread0012.java:57)
注意事項
JavaVM自身で作成するスレッドが、メモリー不足によってスレッドの作成に失敗した場合は、例外情報だけが出力されます。スタックトレースは出力されません。