一尘不染

如何在OutOfMemoryError _after_上进行堆转储时重新启动JVM?

java

我知道-XX:+HeapDumpOnOutOfMemoryErrorJVM参数。我也知道-XX:OnOutOfMemoryError="cmd args;cmd args",这kill -3 <JVM_PID>将要求堆转储。

问题: 如何确保我OutOfMemoryError首先进行完整的堆转储, 然后
在转储完成后强制重新启动(或终止)?是我最好的选择-XX:OnOutOfMemoryError="kill -3 %p;sleep <time-it- takes-to-dump>;kill -9 %p"吗?


阅读 267

收藏
2020-12-03

共1个答案

一尘不染

java -XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError="kill -9 %p" TestApp

JVM将首先转储堆,然后执行OnOutOfMemoryError命令(证明)

2020-12-03