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.

SpringBoot JPA / EclipseLink / Hikary consulta desconocida

Tengo una aplicación SprinBoot que, al iniciar, parece ejecutar algunas consultas (Podemos verlas en los registros de la base de datos, no en los registros de Spring Boot).
No tengo idea de dónde provienen estas consultas.

Parece que ejecuta esta consulta para cada origen de datos, se ven así:

SELECT ID FROM TABLE WHERE ID <> ID 

¿Hay algún tipo de verificación de conexión/verificación de integridad o algo similar? Ya revisé hikari pero aún no encontré nada. Establecí connectionTestQuery en: SELECT 1 FROM DUAL. No ayudó.

La base de datos es una base de datos Oracle. Utilizo EclipseLink y hikari para la conexión del origen de datos.

Gracias por la ayuda o alguna pista.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución de problemas de consultas ejecutadas al iniciar SpringBoot

    Si tienes una aplicación SpringBoot funcionando con Oracle DB y utilizas EclipseLink y Hikari para la conexión a la base de datos, es posible que notes algunas consultas inusuales que aparecen en los registros de la base de datos al iniciar la aplicación. Estas consultas tienen esta apariencia:

    SELECT ID FROM TABLE WHERE ID <> ID
    

    Estas consultas parecen ejecutarse en cada fuente de datos y no aparecen en los registros de Spring Boot cuando inicias la aplicación. Si has estado experimentando este problema y no tienes idea de dónde provienen estas consultas, es posible que necesites realizar algunas soluciones de problemas.

    Verifica la ConnectionTestQuery

    Una de las razones por las que este problema podría estar ocurriendo es debido a una prueba de conexión que se ejecuta durante la configuración del pool de conexiones. Por defecto, Hikari utiliza la ConnectionTestQuery para verificar la validez de las conexiones, y si no se especifica ninguna consulta, utiliza la consulta SELECT 1 FROM DUAL.

    Puedes configurar esta consulta especificando la propiedad spring.datasource.hikari.connection-test-query, pero según el problema en cuestión, parece que no ha ayudado.

    Verifica la configuración de EclipseLink

    Otra posible causa del problema podría ser la configuración de EclipseLink, en particular la configuración de registro. Para verificar esto, agrega lo siguiente a tu archivo persistence.xml:

    <property name="eclipselink.logging.level" value="FINEST"></property>
    <property name="eclipselink.logging.parameters" value="true"></property>
    <property name="eclipselink.logging.logger" value="JavaLogger"></property>
    <property name="eclipselink.logging.file" value="c:\temp\log.txt"></property>
    <property name="eclipselink.logging.timestamp" value="true"></property>
    

    Esto habilitará el registro de EclipseLink y mostrará más detalles sobre lo que ocurre durante el inicio. Verifica el archivo de registro y averigua si hay alguna consulta que se esté ejecutando y se parezca a las que estás experimentando.

    Verifica las bibliotecas de terceros

    A veces, las bibliotecas de terceros pueden causar problemas al ejecutarse en ciertas versiones de Spring. Verifica las versiones de todas las bibliotecas de terceros que estás utilizando y asegúrate de que sean compatibles con la versión de SpringBoot que estás ejecutando.

    Conclusión

    Si ninguna de las técnicas de solución de problemas anteriores funciona, es posible que necesites realizar más depuraciones para averiguar de dónde provienen estas consultas. Puedes usar un depurador como IntelliJ IDEA o Eclipse para conectarte a tu aplicación SpringBoot e inspeccionar las consultas que se envían a la base de datos. Además, también puedes pedir ayuda a la comunidad de Spring, que puede haber experimentado problemas similares y puede proporcionar más pistas sobre el problema.

Comments are closed.