Quiero crear un perro guardián nagios para JVM que se ve cuando la JVM se queda sin memoria y la reinicia.¿Cómo reiniciar JVM cuando se agota la memoria usando la monitorización JMX?
Actualmente pude configurar la JVM para permitir JMX pero no sé cómo detectar la condición OutOfMemory y reiniciarla.
/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
desafortunadamente, el jdk estándar tiene _no_ forma de detectar que un jvm ha golpeado a OOM. fui a través de esto mismo en nuestro producto. Terminé instalando un controlador de registro que busca LogRecords que contienen un OOME. funciona siempre que ningún código se trague el error sin informarlo. – jtahlborn
encontré algunas API prometedoras a través de la API de herramientas java, pero concluí que cualquier solución implicaría la implementación de código nativo en un agente de herramientas, que fue un "no ir" para nosotros. – jtahlborn