OutOfエラーのデフォルトの動作
IBM® Java™ 5 以降では、Java プロセスの存続期間における最初の 4 つの OutOfMemory (OOM) エラーにより、Portable Heap Dump (PHD) 形式のヒープ・ダンプ、Java ダンプ・ファイル (javacore)、およびスナップ・ダンプ・ファイルがデフォルトで生成されます。
IBM Java 6 R26 以降では、Java プロセスの存続期間の最初の OOM により、 Linux®、 AIX®上の PHD 定様式ヒープ・ダンプ、Java ダンプ・ファイル、スナップ・ダンプ・ファイル、およびオペレーティング・システム・ダンプ・コア・ファイルが生成されます。 および IBM i (javacore と混同しないようにしてください)、ユーザー・モードのミニダンプ (Windows オペレーティング・システムではフル・メモリー)、および SYSTDUMP ( z/OS®ではデフォルト)。 2 番目、3 番目、および 4 番目の OOM エラーは、PHD 定様式ヒープ・ダンプと Java ダンプ・ファイルのみを生成します。
システム・ダンプは、PHD ヒープ・ダンプのスーパーセットです。 また、システム・ダンプには、メモリーの内容 (ストリング、プリミティブ、変数名など)、スレッドとフレームのローカル側の情報、いくつかのネイティブ・メモリー情報なども含まれています。 詳しくは、 https://publib.boulder.ibm.com/httpserv/cookbook/Major_Tools-Eclipse_Memory_Analyzer_Tool.htmlを参照してください。 この追加情報によって、より大きいクラスの問題を解決して、実行中の JVM に対してより一般的な洞察を持つことができ、最終的に問題解決にかかる時間を削減できます。 IBM Java 5 R12 以前および IBM Java 6 R9 以前では、jextract ツールを使用してシステム・ダンプを後処理する必要がありました。 IBM Java の最新バージョンでは、メモリー・アナライザー・ツールなどの DTFJ 対応ツールによって、(PHD ヒープ・ダンプのように) DOM の後処理を行わずに、システム・ダンプを直接ロードすることができます。 ただし、クラッシュについては、jextract を使用する必要があります。
-Xdump:what
で確認できます。 例えば、 $WAS/java/bin/java -version -Xdump:what
を実行すると、以下の出力が生成されます (一部の出力は削除されます)。 特に range オプションに注意してください。# java -version -Xdump:what
Registered dump agents
...
-Xdump:system:
events=systhrow,
filter=java/lang/OutOfMemoryError,
label=... core.&Y&m&d.&H% M% S.% pid.% seq.dmp,
range=1..1,
priority=999,
request=exclusive+compact+prepwalk
...
-Xdump:heap:
events=systhrow,
filter=java/lang/OutOfMemoryError,
label=... heapdump.% Y% m% d.% H% M% S.% pid.% seq.phd,
range=1..4,
priority=500,
request=exclusive+compact+prepwalk,
opts=PHD
...
-Xdump:java:
events=systhrow,
filter=java/lang/OutOfMemoryError,
label=... javacore.% Y% m% d.% H% M% S.% pid.% seq.txt,
range=1..4,
priority=400,
request=exclusive+preempt
...
-Xdump:snap:
events=systhrow,
filter=java/lang/OutOfMemoryError,
label=... Snap.% Y% m% d.% H% M% S.% pid.% seq.trc,
range=1..4,
priority=300,
request=serial
Xdump
(https://www.ibm.com/docs/en/SSYKE2_8.0.0/openj9/xdump/index.html#default-dump-agents) 汎用 JVM 引数 (http://www-01.ibm.com/support/docview.wss?uid=swg21417365) を使用して変更できます。-Xdump
の file パラメーターによって指定された場所に書き込まれます (前述の -Xdump:what
のラベル属性を参照してください)。 これを、十分なスペースがある専用パーティションに変更する必要があります。 以下に例を示します。-Xdump:directory=/var/dumps/