De nombreuses bibliothèques de regroupement de connexions de base de données offrent la possibilité de tester leurs connexions SQL pour l'inactivité. Par exemple, la bibliothèque de regroupement JDBC c3p0 a une propriété appelée preferredTestQuery
, qui est exécutée sur la connexion à des intervalles configurés. De même, Apache Commons DBCP a validationQuery
.
De nombreux exemples de requêtes que j'ai vus concernent MySQL et recommandent de l'utiliser SELECT 1;
comme valeur pour la requête de test. Cependant, cette requête ne fonctionne pas sur certaines bases de données (par exemple HSQLDB, pour qui SELECT 1
attend une FROM
clause).
Existe-t-il une requête indépendante de la base de données qui est tout aussi efficace mais fonctionnera pour toutes les bases de données SQL?
Éditer:
S'il n'y en a pas (ce qui semble être le cas), quelqu'un peut-il suggérer un ensemble de requêtes SQL qui fonctionneront pour divers fournisseurs de bases de données? Mon intention serait de déterminer par programme une instruction que je peux utiliser en fonction de la configuration de mon fournisseur de base de données.