Ответ 1
Это может быть путь к каталогу файла ИЛИ. Если у вас есть путь к каталогу, сгенерированное имя файла будет иметь pid в нем по умолчанию.
http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
При использовании -XX:+HeapDumpOnOutOfMemoryError
JVM не будет перезаписывать дамп кучи, если уже есть файл дампа по указанному пути. Я хочу иметь несколько дампов кучи в нестандартном местоположении и планировал использовать pid в пути дампа кучи, чтобы это разрешить.
Однако, когда я попытался указать аргумент следующим образом:
-XX:HeapDumpPath=some/heapdump/path/heapdump-%p.hprof
И затем создал кучу кучи, я получил %p
, а не фактический pid в имени файла. Однако использование %p
похоже на вариант -XX:OnOutOfMemoryError
. Есть ли другой синтаксис, который я должен использовать для -XX:HeapDumpPath=
?
Это может быть путь к каталогу файла ИЛИ. Если у вас есть путь к каталогу, сгенерированное имя файла будет иметь pid в нем по умолчанию.
http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
Вы должны добавить, какую Java вы используете. Эти параметры зависят от поставщика JVM (IBM, Oracle и т.д.).
OnOutOfMemoryError говорит WHEN, чтобы выполнить дамп. HeapDumpPath говорит WHERE, чтобы поставить дамп. Я думаю, что использование HeapDumpPath включается первым, но я советую использовать их для ясности.
О исходном вопросе, использование pid в имени файла дампа является хорошей практикой. Это может помочь, в частности, скомпоновать и проанализировать, что происходит после нескольких проблем/перезапуска.
Точный синтаксис объясняется здесь.