-XX:+HeapDumpOnOutOfMemoryError
を使用する場合、指定したパスにすでにダンプファイルがある場合、JVMはヒープダンプを上書きしません。デフォルト以外の場所に複数のヒープダンプを配置できるようにしたいので、それを可能にするために、ヒープダンプパスでpidを使用することを計画していました。
しかし、私がそのように引数を指定しようとしたとき:
-XX:HeapDumpPath=some/heapdump/path/heapdump-%p.hprof
次に、ヒープダンプを作成しました。ファイル名に実際のpidではなく%p
が表示されました。ただし、%p
の使用は-XX:OnOutOfMemoryError
オプションで機能するようです。 -XX:HeapDumpPath=
で使用する予定の構文が他にありますか?
これは、ファイルへのパスにすることができますORディレクトリ。ディレクトリへのパスがある場合、生成されたファイル名には、デフォルトでpidが含まれます。
http://www.Oracle.com/technetwork/Java/javase/tech/vmoptions-jsp-140102.html
使用するJava使用するものを追加してください。これらのオプションは、JVMベンダー(IBM、Oracleなど)によって異なります)
OnOutOfMemoryErrorは、ダンプを実行するようにWHENに指示します。 HeapDumpPathは、ダンプを配置する場所を示します。 HeapDumpPathを使用すると最初にオンになると思いますが、わかりやすくするために両方を使用することをお勧めします。
元の質問については、ダンプファイル名にpidを使用することをお勧めします。特に、複数の問題/再起動後に何が起こるかを分析して分析するのに役立ちます。
正確な構文は here で説明されています。