Exception d'E/S: The Network Adapter could not establish the connectio

Exception d'E/S: The Network Adapter could not establish the connectio - Java - Programmation

Marsh Posté le 27-03-2009 à 11:55:23    

Bonjour,
j'ai cette exception lors de la connexion à oracle via jdbc.
le pire dans l'histoire, c'est que cette exception est aléatoire ?? elle peut apparaitre dans toutes mes méthodes JDBC à n'importe quel moments !
la même méthode peut fonctionner correctement, puuis lancer cette exception une ou deux fois, puis rien !
 
mes methodes JDBC sont très classique, voici un exemple :

Code :
  1. public static Vector getTypeOperation(){
  2.  Connection con = null;
  3.  String strQuery = null;
  4.  PreparedStatement ps = null;
  5.  String nomMethode = "getTypeOperation";
  6.  Type type = null;
  7.  Vector types = new Vector();
  8.  try {
  9.   Class.forName(UrlDriver);
  10.  } catch (java.lang.ClassNotFoundException e) {
  11.   System.err.print("ClassNotFoundException: " );
  12.   System.err.println(e.getMessage());
  13.  }
  14.  try {
  15.  try {
  16.   con = DriverManager.getConnection(DBurl,DBusername,DBpassword);
  17.   strQuery = "SELECT TOP_ID, TOP_NOM FROM TYPE_OPERATION";
  18.   ps = con.prepareStatement(strQuery);
  19.   ResultSet rs  = ps.executeQuery();
  20.   while(rs.next()){
  21.    type = new Type(rs.getString("TOP_ID" ), rs.getString("TOP_NOM" ));
  22.    types.add(type);
  23.   }
  24.   return types;
  25.  }catch (SQLException sqle) {r2oSqlException =  new R2oSqlException( "DbAccessSELECT." + nomMethode + " : " + sqle.getClass().getName() + sqle.getMessage());
  26.   } catch (Exception e) {r2oException =  new R2oException("DbAccessSELECT." + nomMethode + " : " + e.getClass().getName() + e.getMessage());        
  27.   } finally {
  28.    if (ps != null)
  29.     try {ps.close();
  30.     } catch (java.sql.SQLException sqle) {r2oSqlException =  new R2oSqlException("DbAccessSELECT." + nomMethode + " : " + sqle.getClass().getName() + sqle.getMessage());}
  31.    if (con != null)
  32.     try {con.close();
  33.     } catch (java.sql.SQLException sqle) {r2oSqlException =  new R2oSqlException( "DbAccessSELECT." + nomMethode + " : " + sqle.getClass().getName()+ sqle.getMessage());
  34.     }     
  35.  }
  36. }catch (Exception e) {
  37.  e.printStackTrace();
  38. }
  39.  return types;
  40. }

 
 
l'exception est lancée par :  

Code :
  1. con = DriverManager.getConnection(DBurl,DBusername,DBpassword);


 
mon listner log (dernières lignes)
 

Code :
  1. ...
  2. 27-MAR-2009 11:01:01 * (CONNECT_DATA=(SID=R2O)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=oracle))) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1707)) * establish * R2O * 0
  3. 27-MAR-2009 11:01:01 * (CONNECT_DATA=(SID=R2O)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=oracle))) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1710)) * establish * R2O * 0
  4. 27-MAR-2009 11:01:02 * (CONNECT_DATA=(SID=R2O)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=oracle))) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1713)) * establish * R2O * 0
  5. 27-MAR-2009 11:01:02 * (CONNECT_DATA=(SID=R2O)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=oracle))) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1716)) * establish * R2O * 0
  6. 27-MAR-2009 11:01:02 * (CONNECT_DATA=(SID=R2O)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=oracle))) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1719)) * establish * R2O * 0


 
J'insiste sur le fait que l'exception est lancée aléatoirement !!
Ma config :
OS : XP
SGBDR : Oracle8i
Drivers : classes12.zip
Server : Websphere 6.1
 
Merci de votre aide.

Reply

Marsh Posté le 27-03-2009 à 11:55:23   

Reply

Marsh Posté le 28-03-2009 à 14:48:38    

Un conseil, met toi à SpringFramework 3.0
 


private JdbcOperations jdbc = new JdbcTemplate(dataSource);
 
public List<Type> getTypeOperation() {
    List<Type> types = jdbc.query("SELECT TOP_ID, TOP_NOM FROM TYPE_OPERATION", new RowMapper<Type>() {
        public Type mapRow(ResultSet rs, int rowNum) throws SQLException {
            return new Type(rs.getString("TOP_ID" ), rs.getString("TOP_NOM" ));
        }
    });
    return types;
}

Reply

Marsh Posté le 28-03-2009 à 18:13:54    

Merci pour le conseil,
mais, ma question est claire et précise !  
autrement dit, je n'ai pas demandé un conseil pour l'acces à la BD !
d'autaut plus, que tu ne connais pas le contexte de mon projet, le choix des technologies, des produits, des frameWorks...et autres donc je vois mal comment tu peux me conseiller telle ou telle solution !!  
Si on a opté pour le JDBC classique (à la main) c'est qu'on a nos raisons ! d'ailleurs, le problème est plus autour de la connexion qu'à la façon de coder ou autres.
Donc, si t'as une idée, je suis preneur avec joie, sinon, merci de ne pas polluer les discussions avec des messages qui ne sert à rien.
Salut.  
 

Reply

Marsh Posté le 29-03-2009 à 01:50:59    

tu dois te faire couper la connexion par un firewall, par la base de données ou autre (timeout ?).

 


par contre, il y a des partis de ton code que je trouve étrange. ça ne résout pas le problème mais ça peut en résoudre d'autre...

 

J'ai la mauvaise impression que tes exceptions ne sont là que pour loger.


Message édité par zapan666 le 29-03-2009 à 01:51:17

---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 29-03-2009 à 20:20:45    

MarsOran a écrit :


Si on a opté pour le JDBC classique (à la main) c'est qu'on a nos raisons !


C'était du jdbc classique (cf. le ResultSet)... Je pourrais te redonner le même exemple avec 1 classe et 1 interface entièrement écrites moi même, sans spring.
 
Retravaille ta gestion des exceptions, laisse tout remonter avec des rethrow de RuntimeException pour tester ... tu as des catch qui ne font rien, c'est un anti pattern.

Reply

Marsh Posté le 11-01-2013 à 10:40:47    

Bonjour à tous,
 
Je sais que j'arrive un peu tard mais j'ai espoire de trouver de l'aide ici.
 
Je travail actuellement sur un projet ou je rencontre exactement le même problème. Je lance des requêtes en utilisant les mêmes méthodes, et parfois une erreur surgit lors de la connection à la Bdd.
 
Erreur: "Exception d'E/S: The Network Adapter could not establish the connection"'
 
J'utilise JDBC aussi: ojdbc14_g.jar, et suis sous oracle.
 
 
MarsOran aurais-tu trouvé une solution à ton problème? quelqu'un pourrait-il m'éclairer sur les raisons probables de cette erreur?
 
En vous remerciant d'avance.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed