Я знаю о параметре JVM -XX:+HeapDumpOnOutOfMemoryError
. Я также знаю о -XX:OnOutOfMemoryError="cmd args;cmd args"
и что kill -3 <JVM_PID>
запросит кучу кучи.Как перезапустить JVM в OutOfMemoryError _after_, создавая кучу кучи?
Вопрос: Как я могу убедиться, что я, на OutOfMemoryError
, сначала сделать полный дамп кучи и затем силу перезагрузка компьютера (или убить) после того, как дамп делается? Мой лучший выбор -XX:OnOutOfMemoryError="kill -3 %p;sleep <time-it-takes-to-dump>;kill -9 %p"
?
Не было бы лучше контролировать процесс извне в JVM, и перезапустить его, соответственно, например, unix-скрипт, система мониторинга? если jvm не хватает памяти, я бы не хотел полагаться на него, чтобы иметь возможность надежно запускать команду для перезапуска – vikingsteve