¿Cuál es la mejor manera de monitorear (java) las muertes de procesos en una caja de Windows?

Tenemos un curioso problema con nuestros procesos de Java muriendo.

La aplicación no acumula el seguimiento, ni escribe nada en los registros, el proceso simplemente muere al azar. Es una aplicación muy utilizada, pero el problema solo aparece aproximadamente una vez al mes.

Actualmente estamos estudiando el uso de Process Monitor, pero cualquier otra sugerencia sería bienvenida.

Editar:

Es una aplicación Java distribuida, que se ejecuta en Weblogic con un marco web interno (Sí, esta es una idea terrible, pero se ha estado ejecutando durante ocho años), conectándose a Oracle.

-

¿Sin memoria? Nuestros registros capturarían java.lang.OutOfMemoryException, según Brian Agnew.

Escribir accidentes en un registro? No creo que Java tenga la oportunidad, la muerte está ocurriendo a nivel de proceso, en lugar de salir de Java.

Respuesta 1

¿Puede envolverlo en un script de shell que capture los archivos de registro (stdout / stderr) y el código de salida (que debería dar alguna indicación de cómo murió)? En la salida JVM también puede capturar estadísticas a nivel de máquina usando WMI

SI la VM en sí se bloquea, dejará un archivo hs_err_pid ... que contiene stacktraces, información de depuración a nivel de máquina. Luego puede usar eso para diagnosticar el problema de VM. Vea esta entrada de blog para más información.

Si el problema está relacionado con el comportamiento de la aplicación, puede valer la pena mirar a JConsole , aunque desde su descripción del problema, esto suena mucho más como un problema de VM de bajo nivel.

(Supongo que está en la última máquina virtual para su número de versión de Java, etc.)

Respuesta: 2

¡Puede usar un servidor Linux NAGIOS para monitorear el estado de sus máquinas y servicios de Windows! Echa un vistazo a: nagios-tracking-windows .

Si tiene tales problemas con su aplicación de Java! ¡Debes probarlo y depurarlo! ¡Las aplicaciones no deberían morir sin dejar rastro! ¡Busque archivos de registro! ¿De qué proveedor es la aplicación? ¿O es auto escrito? Intente imponer otro Log4J / Logger / Debug Level. Monitoree su sistema con cactus, etc. para reducir las posibilidades de tal caída. Hable con el vendedor del software.

¿Hay memoria enogh disponible? Tal vez la aplicación se queda sin memoria? ¿Es un proceso java independiente o un proceso java de un servidor tomcat / jboss?

¿Ha anotado los tiempos de bloqueo en un registro? Aparecen en diferentes segmentos de tiempo? ¿O parecen casi circulares en el tiempo?

Respuesta: 3

Ejecuté: javac Perf.java y obtuve: ERROR en Prefs.java (en la línea 36) HashMap <String, String> map = new HashMap <String, String> (); ^^^^^^^^^^^^^^ Error de sintaxis, tipos parametrizados ...

Estoy tratando de mostrar algunas imágenes que contienen caracteres especiales como ☻ ☺ ♥ o caracteres chinos o árabes en sus nombres usando jsp ... ¡pero las imágenes no se muestran! <img src = "pipo² ....

Para 2 propietarios, la respuesta es fácil: use un control deslizante con un propietario a la izquierda, el otro a la derecha, y deslice para controlar el porcentaje de cada uno. ¿Cómo lo hago con 3 o más propietarios? Específicamente yo ...

Si tengo un applet incrustado en una página web y quiero que se conecte al software del lado del servidor (también escrito en Java), ¿cómo puedo hacer esto correctamente en una máquina con Windows que ejecuta un host local? ¿Tendría que ...