2014-05-13 2 views
1

Je souhaite détecter lorsqu'une base de données Oracle est arrêtée. Ces ci-dessous les codes d'erreur sont tirés de http://docs.oracle.com/cd/E23943_01/apirefs.1111/e13952/pagehelp/JDBCjdbcdatasourcesjdbcdatasourceconfigconnectionpooltitle.html:Java détectant les codes d'erreur de la base de données Oracle vers le bas

■ 3113: "fin de fichier sur le canal de communication"

■ 3114: "non connecté à ORACLE"

■ 1033: " initialisation ORACLE ou d'arrêt en cours »

■ 1034: "ORACLE non disponible"

■ 1089: "arrêt immédiat en cours - aucune opération sont autorisées"

■ 1090: "arrêt en cours - connexion ne sont pas autorisés"

■ 17002: "E/S exception"

Je souhaite détecter sans utiliser l'injection de ressources DataSource sans un serveur Glassfish lorsque la base de données Oracle est hors service. Ci-dessous l'exemple de code:

public class Database { 
    public static void main(String[] args) { 
     try { 
      Connection connection = DriverManager.getConnection("url", "username", "password"); 
      Statement statement = connection.createStatement(); 
      ResultSet resultSet = statement.executeQuery(new String("SELECT name FROM NAMES"); 
     } 
     catch(SQLException e) { 
      // use the error code defined above to detect database is down 
     } 
    } 
} 

Comme cela est une application standlone, peut ces codes d'erreur utilisés et vont-ils travailler ou y at-il d'autres codes d'erreur qui fonctionnent pour les applications standlone?

Répondre

0

Ces codes sont liés (et renvoyés par) le pilote JDBC et devraient fonctionner indépendamment de le pilote JDBC est déployé (qu'il s'agisse d'une application autonome ou d'un serveur d'applications).

Questions connexes