Saltar al contenido

¿Cuál es la mejor manera de “hacer ping” a una base de datos a través de JDBC?

Nuestro equipo especializado pasados muchos días de investigación y de recopilar de datos, encontramos la respuesta, deseamos que te sea útil en tu proyecto.

Solución:

Con JDBC 4 puedes usar isValid(int) (JavaDoc) desde la interfaz de conexión. Esto básicamente hace la declaración de prueba por usted.

Algunos controladores implementan esto enviando el SQL ficticio correcto a la base de datos y otros usan directamente operaciones de bajo nivel que reducen la sobrecarga de análisis.

Sin embargo, tenga cuidado con el tiempo de espera, algunos controladores (DB/400 y Oracle Thin) generan un nuevo subproceso de tiempo para cada invocación, lo que no es realmente aceptable para la mayoría de los escenarios de validación de grupos). Y Oracle tampoco parece usar una declaración preparada, por lo que depende del caché implícito.

Sí, eso sería solo para Oracle, pero no hay una forma genérica de hacerlo en JDBC.

La mayoría de las implementaciones de grupos de conexiones tienen un parámetro de configuración en el que puede especificar el SQL que se usará para hacer ping, lo que aumenta la responsabilidad de descubrir cómo hacerlo para el usuario.

Ese parece ser el mejor enfoque a menos que a alguien se le ocurra una pequeña herramienta de ayuda para esto (por supuesto, excluye el uso de métodos no basados ​​en SQL potencialmente incluso más rápidos como la función de ping interna de Oracle)

Tampoco conozco una solución genérica. Para IBM UDB en iSeries (y quizás otros sistemas DB2) sería

select 1 from SYSIBM.SYSDUMMY1;

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *