Wiem o parametrze JVM -XX:+HeapDumpOnOutOfMemoryError
. Wiem też o -XX:OnOutOfMemoryError="cmd args;cmd args"
i że kill -3 <JVM_PID>
zażąda zrzutu sterty.Jak ponownie uruchomić maszynę JVM w OutOfMemoryError _ po zrobieniu zrzutu sterty?
Pytanie: W jaki sposób można się upewnić, że na OutOfMemoryError
najpierw zrobić pełny zrzut sterty i następnie siły restartu (lub zabić) po zrzut odbywa? Czy mój najlepszy zakład to -XX:OnOutOfMemoryError="kill -3 %p;sleep <time-it-takes-to-dump>;kill -9 %p"
?
Czy nie byłoby lepiej, aby monitorować proces od bez JVM i ponownie go odpowiednio, na przykład skrypt unix, system monitoryzacji? jeśli jvm jest poza pamięcią, nie chciałbym na nim polegać, aby móc niezawodnie uruchomić polecenie ponownego uruchomienia – vikingsteve