web-dev-qa-db-ja.com

-XX:HeapDumpPathオプションを使用しているが、プロセスIDを統合したい

-XX:+HeapDumpOnOutOfMemoryErrorを使用する場合、指定したパスにすでにダンプファイルがある場合、JVMはヒープダンプを上書きしません。デフォルト以外の場所に複数のヒープダンプを配置できるようにしたいので、それを可能にするために、ヒープダンプパスでpidを使用することを計画していました。

しかし、私がそのように引数を指定しようとしたとき:

-XX:HeapDumpPath=some/heapdump/path/heapdump-%p.hprof

次に、ヒープダンプを作成しました。ファイル名に実際のpidではなく%pが表示されました。ただし、%pの使用は-XX:OnOutOfMemoryErrorオプションで機能するようです。 -XX:HeapDumpPath=で使用する予定の構文が他にありますか?

15
Nina

これは、ファイルへのパスにすることができますORディレクトリ。ディレクトリへのパスがある場合、生成されたファイル名には、デフォルトでpidが含まれます。

http://www.Oracle.com/technetwork/Java/javase/tech/vmoptions-jsp-140102.html

17
Brett Okken

使用するJava使用するものを追加してください。これらのオプションは、JVMベンダー(IBM、Oracleなど)によって異なります)

OnOutOfMemoryErrorは、ダンプを実行するようにWHENに指示します。 HeapDumpPathは、ダンプを配置する場所を示します。 HeapDumpPathを使用すると最初にオンになると思いますが、わかりやすくするために両方を使用することをお勧めします。

元の質問については、ダンプファイル名にpidを使用することをお勧めします。特に、複数の問題/再起動後に何が起こるかを分析して分析するのに役立ちます。

正確な構文は here で説明されています。

0
mcoolive