Muchas bibliotecas de agrupación de conexiones de bases de datos proporcionan la capacidad de probar sus conexiones SQL en busca de inactividad. Por ejemplo, la biblioteca de agrupación JDBC c3p0 tiene una propiedad llamada preferredTestQuery
, que se ejecuta en la conexión a intervalos configurados. Del mismo modo, Apache Commons DBCP tiene validationQuery
.
Muchas consultas de ejemplo que he visto son para MySQL y recomiendo usarlas como el valor para la consulta de prueba. Sin embargo, esta consulta no funciona en algunas bases de datos (por ejemplo, HSQLDB, para lo cual se espera una cláusula).SELECT 1;
SELECT 1
FROM
¿Existe una consulta independiente de la base de datos que sea igualmente eficiente pero funcione para todas las bases de datos SQL?
Editar:
Si no existe (que parece ser el caso), ¿alguien puede sugerir un conjunto de consultas SQL que funcionarán para varios proveedores de bases de datos? Mi intención sería determinar mediante programación una declaración que pueda usar según la configuración de mi proveedor de base de datos.