-XX:[+|-]HitachiOutOfMemoryHandling(OutOfMemoryハンドリングオプション)
形式
説明
OutOfMemoryハンドリング機能を有効にするかどうかを指定します。このオプションは,J2EEサーバをJ2EEサーバモードで実行した場合にだけ有効です。
OutOfMemoryハンドリング機能は,OutOfMemory発生時強制終了機能(-XX:+HitachiOutOfMemoryAbort)と組み合わせて使用します。OutOfMemory発生時強制終了機能が無効(-XX:-HitachiOutOfMemoryAbort)になっている場合,OutOfMemoryハンドリング機能は無効になります。
OutOfMemoryハンドリング機能を有効にした場合,OutOfMemory発生時にOutOfMemoryErrorスロー条件が判定されます。具体的には,次に示す処理を実行中にJavaヒープ不足やMetaspace領域,Compressed Class Space不足が原因のOutOfMemoryが発生した場合に,J2EEサーバの実行を継続するかどうかが判定されます。
判定の結果,J2EEサーバの実行が継続される場合は,java.lang.OutOfMemoryErrorがスローされて,OutOfMemoryが発生したリクエスト処理だけが中止されます。
JavaVMは,判定結果によって次のように動作します。ただし,Webアプリケーションでjava.lang.OutOfMemoryErrorをキャッチしている場合は,その処理に従います。
OutOfMemoryErrorスロー条件を次に示します。なお,OutOfMemoryErrorスロー条件に合致しない場合,OutOfMemory発生時強制終了機能によって,JavaVMは強制終了します。
OutOfMemory発生時強制終了機能とOutOfMemoryハンドリング機能のOutOfMemory発生要因ごとの動作を次の表に示します。OutOfMemoryハンドリング機能が有効かどうかは,OutOfMemoryの発生原因がJavaヒープ不足またはMetaspace領域,Compressed Class Space不足の場合の動作に影響します。
表16-8 OutOfMemory発生時強制終了機能とOutOfMemoryハンドリング機能のOutOfMemory発生要因ごとの動作
OutOfMemory発生要因 | OutOfMemory発生時強制終了機能の対象となるかどうか (OutOfMemory発生時の動作※1) | OutOfMemoryハンドリング機能の対象となるかどうか (OutOfMemory発生時の動作) |
---|---|---|
Javaヒープ不足 | 対象になります (JavaVMは強制終了します)。 | 対象になります (判定結果に従って動作します※2)。 |
Metaspace領域不足 | 対象になります (JavaVMは強制終了します)。 | 対象になります (判定結果に従って動作します※2)。 |
Compressed Class Space不足 | 対象になります (JavaVMは強制終了します)。 | 対象になります (判定結果に従って動作します※2)。 |
Cヒープ不足 | 対象になります (JavaVMは強制終了します)。 | 対象になりません (JavaVMは強制終了します※3)。 |
Unkown | 対象になりません (java.lang.OutOfMemoryErrorがスローされます)。 | 対象になりません (java.lang.OutOfMemoryErrorがスローされます)。 |
Thread Limit | 対象になりません (java.lang.OutOfMemoryErrorがスローされます)。 | 対象になりません (java.lang.OutOfMemoryErrorがスローされます)。 |
注※1 OutOfMemoryハンドリング機能は無効(-XX:-HitachiOutOfMemoryHandling)の場合の動作です。
注※2 OutOfMemoryErrorスロー条件を満たしている場合,java.lang.OutOfMemoryErrorがスローされます。OutOfMemoryErrorスロー条件を満たしていない場合,OutOfMemory発生時強制終了機能の処理に移行して,JavaVMは強制終了します。
注※3 OutOfMemory発生時強制終了機能によって,JavaVMは強制終了します。
また,OutOfMemoryハンドリング機能が有効な場合,Javaヒープ不足,およびMetaspace領域,Compressed Class Space不足が原因のOutOfMemory発生時にOutOfMemoryの発生頻度に関する情報がJavaVMログファイルに出力されます。
出力形式
[id][Thread: thread_id]<date>[Handling: oom_count(max_oom_count)] |
出力内容を次に説明します。
出力例
[OMH][Thread: 0x00927f48]<Tue Aug 24 19:02:19 2010>[Handling: 1(60)] |
注意事項