Ich möchte einen Nagios-Watchdog für JVM erstellen, der aussieht, wenn der JVM nicht mehr genügend Arbeitsspeicher hat und ihn neu startet.Wie starte ich JVM neu, wenn der JORM-Speicher nicht mehr ausreicht?
Momentan konnte ich die JVM einrichten JMX erlauben, aber ich weiß nicht, OutOfMemory Zustand zu erkennen und neu zu starten.
/check_jmx -U service:jmx:rmi:///jndi/rmi://127.0.0.1:1100/jmxrmi -O "java.lang:type=Memory" -A "HeapMemoryUsage" -K used -I HeapMemoryUsage -J used -vvvv
JMX OK HeapMemoryUsage.used=957414288{committed=2415984640;init=2147483648;max=2863333376;used=957414288}
https://github.com/tcurdt/nagios-check-jmx
leider hat der Standard-jdk _no_ Weg zu erkennen, dass ein jvm OOM getroffen hat. ging das selbst in unserem Produkt durch. Ich habe am Ende einen Logging-Handler installiert, der nach LogRecords sucht, die ein OOME enthalten. funktioniert, solange kein Code den Fehler verschluckt, ohne es zu melden. – jtahlborn
Ich habe einige vielversprechende APIs über die Java Tooling API gefunden, aber ich kam zu dem Schluss, dass jede Lösung die Implementierung von nativem Code in einen Werkzeugagenten beinhalten würde, was für uns ein "No Go" war. – jtahlborn