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.

El controlador Spring JDBC Hikari registra constantes conexiones y desconexiones en la base de datos Oracle.

Estoy usando el paquete spring boot hikari db para conectarme a una base de datos Oracle (19C). Nuestras propiedades son las siguientes:

spring.datasource.app.hikari.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.app.hikari.minimumIdle=5
spring.datasource.app.hikari.maximumPoolSize=10
spring.datasource.app.hikari.idleTimeout=600000
spring.datasource.app.hikari.connectionTimeout=180000
spring.datasource.app.hikari.max-lifetime=60000

Nuestra tabla AUD de la base de datos se está llenando debido a las constantes acciones de inicio de sesión y cierre de sesión que se registran desde los servicios cada segundo.

Utilicé la solución a la siguiente pregunta (para reducir minimumIdle e incrementar idleTimeout para largos periodos de inactividad), pero no resolvió el problema.

https://stackoverflow.com/questions/57976262/spring-jdbc-hikari-connection-pool-constantly-logs-on-and-off-to-database

¿Alguien puede ayudar en este caso? Gracias de antemano.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experta en tecnología de la información especializada en Java, Spring, bases de datos, conexión de agrupación y HikariCP, sugiero probar las siguientes soluciones para resolver el problema de la tabla AUD de la base de datos que se llena debido a la constante registración de acciones de inicio y cierre de sesión desde los servicios cada segundo:

    1. Aumentar el tiempo de espera ocioso: Aumente el tiempo de espera ocioso a un valor mayor que 600000 (10 minutos) para evitar que las conexiones inactivas permanezcan abiertas por demasiado tiempo. Puede intentar aumentarlo a 900000 (15 minutos) o incluso 1200000 (20 minutos) para ver si reduce el número de acciones de inicio y cierre de sesión.
    2. Disminuir el tamaño máximo de la agrupación de conexiones: Disminuya el tamaño máximo de la agrupación de conexiones a un valor menor que 10 para limitar el número de conexiones a la base de datos que se pueden crear al mismo tiempo. Puede intentar disminuirlo a 5 o incluso a 3 para ver si reduce el número de acciones de inicio y cierre de sesión.

    3. Implementar alquiler de conexiones: Considere implementar el alquiler de conexiones, que reutiliza una conexión para más de una sesión o transacción en lugar de abrir una nueva conexión cada vez. Esto puede reducir el número de acciones de inicio y cierre de sesión manteniendo un agrupamiento de conexiones y haciendo que las conexiones inactivas estén disponibles para la reutilización.

    4. Revisar las acciones de inicio y cierre de sesión: Revise las acciones de inicio y cierre de sesión para comprender por qué se registran cada segundo. Puede haber un problema de configuración, una necesidad de optimización u otros problemas subyacentes que deban resolverse.

    Recomiendo probar estos pasos uno por uno para ver cuál proporciona la mejora más significativa. Si ninguno de estos funciona, es posible que deba consultar con un administrador de base de datos o considerar otras opciones de ajuste, como ajustar la base de datos Oracle o ajustar el código del lado del cliente.

Comments are closed.