es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Spring Boot y Hikari Data Source, apagando el servidor.

Estoy desarrollando una aplicación (Angular Dart para el frontend, Spring Boot para el backend) y ya tengo implementada la funcionalidad básica. Ahora me enfrento a un problema en el que la aplicación se cierra por sí misma en momentos aleatorios (no puedo decir si hay un momento específico o si es completamente aleatorio).

[ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Cerrando JPA EntityManagerFactory para la unidad de persistencia 'default'
2021-12-14 18:11:27.551  INFO 278601 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource       : HikariPool-1: se ha iniciado el cierre...
2021-12-14 18:11:27.568  INFO 278601 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource       : HikariPool-1: cierre completado.

Antes de esas líneas de registro, la aplicación funciona sin problemas (hay un cierto período de inactividad del servidor, recibe pocos solicitudes durante el día).

Este es el comando que utilizo para iniciar la aplicación:

java -Duser.country=IT -Duser.language=it -Dserver.port=4499 -jar whServer.jar > whServer.log 2> whServer-error.log&

Antes del cierre, no se producen errores de aplicación.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Según los registros proporcionados, parece que la aplicación se está cerrando correctamente y de forma ordenada sin ningún error o excepción aparente. El cierre es iniciado por la EntityManagerFactory de JPA y completado por HikariPool, que es el grupo de conexiones predeterminado utilizado por las aplicaciones de Spring Boot.

    Una posible razón para el cierre podría ser la inactividad del servidor, como se menciona en la pregunta. HikariPool tiene una configuración predeterminada de cerrar las conexiones inactivas después de cierto tiempo, que se puede cambiar a través de propiedades de configuración. Esta podría ser la razón por la cual la aplicación se cierra después de un período de inactividad.

    Para verificar si este es el caso, puedes consultar las propiedades de configuración de HikariCP en tu archivo application.properties o a través del código. Busca propiedades como idleTimeout o minimumIdle, que podrían afectar el comportamiento del grupo de conexiones. Puedes intentar establecer un valor de tiempo de espera más largo o aumentar el número mínimo de conexiones inactivas para ver si resuelve el problema.

    Otra posibilidad podría ser un factor externo, como el entorno del servidor o los recursos, que está causando el cierre de la aplicación. En este caso, puede ser útil monitorear los registros del servidor y el uso de recursos para identificar cualquier patrón o anomalía que pueda estar causando el problema.

    Independientemente de la causa, se recomienda implementar un sistema de monitoreo y alerta para detectar y resolver cualquier problema de la aplicación o del servidor de manera proactiva. Esto podría implicar configurar la monitorización de registros, el seguimiento de métricas de rendimiento o las alertas automatizadas para notificar a los miembros adecuados del equipo en caso de cualquier problema.

Comments are closed.