World Map
Java Service Wrapper is the easiest way to make your product more reliable.
  • Free Trial
  • Buy Now

Problema

¿Cómo puedo supervisar mi aplicación Java haciendo uso del Java Service Wrapper?

Arrow

Solución!

El Java Service Wrapper puede supervisar el rendimiento de su Aplicación Java, recuperar automáticamente y notificarle sobre cualquier problema que ocurra.

El Java Service Wrapper incluye varias funciones para supervisar, recuperar y notificarle sobre cualquier problema que se presente en su aplicación. Estas funciones funcionan de una manera estructurada para ayudar y asegurar el máximo rendimiento posible de sus aplicaciones. De la misma manera, lo mantendrá informado sobre los problemas suscitados y cuando sea posible, sus causas.

Detalles

Detección de Bloqueos Mutuos

Deadlock

Bloqueos mutuos de subprocesos son posibles en cualquier aplicación Java que ejecute subprocesos múltiples. Pueden ser muy difíciles de corregir y casi imposibles de reproducir en la mayoría de aplicaciones de la vida real. Esto es por la sencilla razón de que mientras más subprocesos se usen, las probabilidades de experimentar un bloqueo mutuo incrementan considerablemente. Para un desarrollador es mucho más difícil determinar no sólo donde ocurrió el problema, pero también la combinación de eventos que generaron tal resultado.

Para aprender más sobre esta función, por favor visite nuestra sección técnica.

Detección automática de congelamientos de la máquina JVM

En una operación normal, el Wrapper rastrea (ping) monitoreando cada 5 segundos asegurándose que su proceso no está congelado. El tiempo de espera de dicho rastreador es la cantidad de tiempo que se permitirá para recibir una respuesta de la JVM antes de que el Wrapper asuma que está congelada y la reinicie.

El Java Service Wrapper puede detectar la mayoría de los congelamientos de la máquina JVM muy rápidamente y reiniciar la aplicación. Se genera y se envía un informe de lo sucedido, por lo que un administrador puede verificar una vez más para asegurarse de que todo esté funcionando correctamente.

¿Cómo detecta el Wrapper que la JVM se ha congelado? Por favor visite la página de la propiedad de tiempo de espera del rastreador (ping timeout) siguiente página para mas información sobre esta propiedad. Como cada aplicación Java es diferente, estos parámetros pueden ser configurados y/o inhabilitados.

Para aprender más sobre esta función, por favor visite nuestra sección técnica.

Detección automática de bloqueos de la máquina JVM

El Wrapper constantemente monitorea el proceso de la JVM y tiene la capacidad de detectar casi instantáneamente si el proceso esta bloqueado, para después reiniciarlo y reducir su estado de inactividad. Por defecto, l Wrapper espera 5 segundos antes de automáticamente relanzar su aplicación.

El tiempo de dicho retraso puede ser configurado de acuerdo a sus necesidades. Sin embargo, es recomendable asegurarse que el Sistema Operativo tendrá tiempo para liberar memoria así como otros recursos asociados al bloqueo de la JVM. Puede encontrar más información el la página de la propiedad wrapper.restart.delay.

Para aprender más sobre esta función, por favor visite nuestra sección técnica.

Reinicios de la máquina JVM en demanda

El Java Service Wrapper ofrece una manera de que su aplicación Java solicite que su propia JVM sea reiniciada. Esto le puede ayudar en diferentes casos. Aplicaciones pueden desear reiniciar después de haber tenido su archivo de configuraciones modificado. Otro posible uso es simplemente que la JVM necesite ser reiniciada para evitar problemas con la memoria o fuga de recursos de cualquier tipo.

Reinicios de la JVM puede ser desencadenados desde la JVM llamando a WrapperManager.restart(). Para más información, visite la documentación del API de Java. Otras maneras pasivas de desencadenar reinicios están disponibles en nuestra Página de Introducción.

Para aprender más sobre esta función, por favor visite nuestra sección técnica.

Notificaciones a través de emails

Deadlock

Emails pueden ser enviados con un mensaje personalizado, junto con un fragmento del archivo de registros del Wrapper. Esto hace posible que un administrador del sistema decida si es necesario tomar nuevas medidas.

El Wrapper puede enviar emails de alerta en respuesta a ciertos eventos. Para más información sobre esta función por favor visite nuestra página de documentación de emails para eventos.

Para aprender más sobre esta función, por favor visite nuestra sección técnica.

Acciones de usuario definidas

Filtros son funciones de gran ayuda haciendo posible de agregar un comportamiento diferente para aplicaciones sin la necesidad de códigos. Su función es monitorear la secuencia de textos de la salida de datos de la consola de una JVM. Cuando dichos textos son encontrados, un sin número de acciones pueden llevarse a cabo.

Comandos de sistema, incluyendo archivo de órdenes externos, pueden ser ejecutados en respuesta a cualquier evento. Estos le ayudarán en la limpieza del sistema enviando notificaciones o tomando acciones que sólo se pueden manejar de forma nativa. Para hacer uso de filtros, sólo necesita especificar un desencadenador y una acción, y se puede especificar el número de acciones que desee. Para más información sobre filtros y una lista de posibles acciones, por favor visite la página de propiedad de filtros.

Suspensión/Reanudación de tiempos de espera

El Wrapper usa varios tiempos de espera (timeout) mientras monitorea la máquina JVM. Siempre que un timeout expire, el Wrapper puede tomar acciones o forzar a la máquina JVM a avanzar al estado siguiente. La mayoría de los timeouts pueden ser configurados a valores que le hacen saber al Wrapper el tiempo esperado para que su aplicación inicie, se detenga y responder en situaciones normales.

Sin embargo, en algunos casos raros, usted puede desear realizar tareas de bloqueo largas desde su código Java, lo que causaria que la máquina JVM no responda. Para prevenir que el Wrapper detecte esto como un bloqueo de la máquina JVM, puede ser útil suspender los tiempos de espera antes de iniciar la tarea y reanudarlos una vez que se complete la tarea.

Esto se puede realizar en las versiones 3.5.40 y más recientes, sea a través del archivo de comandos, acciones desencadenadas por filtros, temporizadores, detección de bloqueos mutuos, o a través del código Java al usar los nuevos métodos WrapperManager.suspendTimeouts() o WrapperManager.resumeTimeouts().

Por favor visite los enlaces anteriores para más detalles sobre su forma preferida de suspender/reanudar tiempos de espera.