En sí Java es un programa muy extenso enfocado en la complejidad de un sistema operativo. Usualmente mientras esta en estado estable, como cualquier otro programa ocasionalmente sufre problemas por ejemplo cuando el sistema se bloquea, sufre congelamientos, etcétera. Cuando el proceso de una aplicación Java se congela, puede ser difícil detectarlo y recuperarse del mismo. Debido a que el proceso Java aún existe en la memoria, muchas aplicaciones de monitoreo externas pensarán que dicho proceso esta trabajando cuando en realidad ha dejado de responder.
Cuando la máquina JVM se congela, por lo general es observado por usuarios u otros sistemas que dejan de interactuar con la aplicación. Una vez que el problema es identificado, a menudo a través de usuarios que lo ha enviado alguna queja un administrador de sistemas debe conectarse al servidor, eliminar la JVM congelada y reiniciar la aplicación. Todo esto puede tomar un par de horas si el administrador encargado se encuentra fuera de la oficina.
- Solución
- Descripción Técnica
- Detección de Congelamientos
- Probando
- Respondiendo a Eventos
- Notificación a Través de Correos Electrónicos
- Configuración de Propiedades
Solución |
||
La Solución a este problema es tener una aplicación de monitoreo, con un conocimiento profundo de cómo funciona Java. Una aplicación en la que se pueda confiar para monitorear su aplicación Java las 24 horas del día los 365 días del año. De la misma manera hacerse cargo automáticamente de cualquier problema que se presente. El Java Service Wrapper tiene varias funciones de monitoreo. Una de ellas es la capacidad para detectar cuando una JVM se ha congelado. El Wrapper constantemente monitorea una JVM y contiene una logica avanzada para decidir si una JVM esta o no congelada. Cuando se detecta que una JVM se ha congelado, el Wrapper automáticamente la reinicia para tener el sistema de trabajando en un tiempo mínimo de inactividad. El Wrapper puede entonces enviar una notificación a través de un email al administrador de sistemas en caso de que desee confirmar que el servicio se ha recuperado y que está trabajando normalmente. El Java Service Wrapper periódicamente rastrea (ping) al proceso Java (por defecto cada 5 segundos) y espera por una respuesta. Si la respuesta no es recibida durante un periódo configurado de tiempo (por defecto 30 segundos), entonces el Wrapper determinará que esta congelado. El Wrapper también toma en consideración aspectos como carga total del sistema para asegurarse que falsos positivos se mantengan a un mínimo. Cuando un congelamiento es detectado, el Wrapper registrará algo como lo que a continuación se presenta en el archivo de registro de valores:
El Wrapper ayuda a detectar problemas críticos incluyendo: |
Descripción Técnica |
||||||||||||||||||||||||||||||||||||||||||||
La detección de congelamientos esta configurada por defecto.
Intentará rastrear la JVM cada 5 segundos y que
el tiempo de espera termine después de 30 segundos sin recibir una respuesta.
Estos dos intervalos son configurables.
Al configurar la propiedad wrapper.
|
Referencia: Congelamientos |
El Java Service Wrapper proporciona un conjunto completo de propiedades de configuración que le permiten hacer que el Wrapper se adapte exactamente a sus necesidades. Por favor, lea la documentación de las propiedades individuales para ver todas las posibilidades además de los ejemplos mostrados anteriormente.
|