Oracle
 sql >> Base de données >  >> RDS >> Oracle

vérification par programme de la connexion ouverte dans JDBC

Quelque chose comme :

Statement stmt = null;
ResultSet rs =null;
try {
   stmt = conn.createStatement();
   // oracle
   rs = stmt.executeQuery("SELECT 1 FROM Dual");
   // others
   // rs = stmt.executeQuery("SELECT 1");
   if (rs.next())
      return true; // connection is valid
}
catch (SQLException e) {
   // TODO : log the exception ...
   return false;
}
finally {
   if (stmt != null) stmt.close();
   if (rs != null) rs.close();
} 

Notez que si la connexion provient d'un pool de connexions (dans un serveur d'applications par exemple), le pool peut disposer d'un mécanisme pour vérifier si une connexion est valide ou non. Avec BEA, vous spécifiez le SELECT dans la propriété "test-on-reserve".

Si vous développez votre propre pool, vous voudrez peut-être jeter un œil à la façon dont les autres le font (ex. Proxool).