Paramètre de Délai d'attente Réseau pour la connexion JDBC

Je suis en train de définir un délai d'attente du réseau, mon Oracle Connexion de base de données en Java. Cependant, j'obtiens une erreur. Ci-dessous est un exemple de code et c'est respectifs exception.

try{
    conn = new Database("oracle").connect();
    conn.setNetworkTimeout(null, 30000); //I don't have an Executor, so the field is set to null
    System.out.println(Switch.date() + " -> Database Connection Initialized");
}
catch(SQLException ex){
    Logger.getLogger(Switch.class.getName()).log(Level.SEVERE, null, ex);
}

L'Exception que j'obtiens est:

Exception in thread "main" java.lang.AbstractMethodError:oracle.jdbc.driver.T4CConnection.setNetworkTimeout(Ljava/util/concurrent/Executor;I)V
   at ke.co.smart.Switch.<init>(Switch.java:524)
   at ke.co.smart.Switch.main(Switch.java:161)
Java Result: 1

Je crois qu'il a à faire avec une méthode abstraite (lire AbstractMethodError). Ce qui pourrait probablement la cause de cette erreur que j'ai mis en œuvre la méthode qui je pense est déjà définis dans Java, et donc, de ne pas refuser de compiler.

N. B.: Java ne permet pas de compilation de classes concrètes si il y a des méthodes abstraites.

Qu'est-ce que la version du pilote Oracle? Peut-être une version plus récente met en œuvre cette méthode. (note: les chiffres dans le nom de fichier "ojdbc6" ou "ojdbc5" pas version du pilote).
Si vous voulez vraiment résoudre les problèmes avec DCD(morts de la détection de connexions), vous devez passer à BEC pilotes et le configurer sur le BEC (en sqlnet.ora). La "meilleure" façon est d'utiliser TCP keepalive technique. Mais ce besoin de l'aide des Administrateurs de bases de données et administrateurs Unix.

OriginalL'auteur Patrick Wanjau | 2013-09-16