Bonjour,
Je suis étudiant et je fais actuellement un projet java / bdd sous oracle.
J'ai deux pc, deux vm, une linux oracle qui héberge ma BDD en version 10g (10.2.0.1.0)
J'ai une application java sur l'autre vm que je développe avec éclipse. (JDK 1.5)
J'ai un programme de test que je lance en bash pour tester la connexion à la base, j'ai aussi l'équivalent de cette fonction dans eclipse avec les interface etc..
Et je rencontre un problème de connexion donc...
Je charge mon driver via : export CLASSPATH=$SCLASSPATH:/usr/share/java/ojdbc14.jar
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 import java.sql.*; class TestRainDB { public static void main (String[] args) { String driverName = "oracle.jdbc.driver.OracleDriver"; String dbUrl = "jdbc:oracle:thin:@192.168.0.20:1521:XE"; String user = "ADM_FPR"; String pass = "mdp"; try { // Etape 1. Chargement du driver System.out.println("Chargement du driver: " + driverName); Class.forName(driverName); // Etape 2: Obtention de la connexion System.out.println("Connexion a la base: " + dbUrl); System.out.println("User id: " + user); Connection myConn = DriverManager.getConnection (dbUrl, user, pass); // Etape 3: Creer et executer la requete SQL System.out.println("Execution de la requete..."); Statement myStmt = myConn.createStatement (); ResultSet myRs = myStmt.executeQuery ("SELECT * from Comic_Books"); // Etape 4: Traiter le ResultSet while (myRs.next ()) { System.out.println (myRs.getString ("artist_name") + " - " + myRs.getString ("title")); } myConn.close(); } catch (SQLException exc) { exc.printStackTrace(); } catch (ClassNotFoundException exc) { exc.printStackTrace(); } } }
Je lance dans mon bash et j'obtiens l'erreur suivante :
J'obtiens la même erreur dans eclipse..
J'ai parcouru une grande partie des forum, les faq etc http://java.developpez.com/faq/jdbc/?page=connection
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Chargement du driver: oracle.jdbc.driver.OracleDriver Connexion a la base: jdbc:oracle:thin:@192.168.0.20:1521:XE User id: ADM_FPR java.sql.SQLException: Io exception: The Network Adapter could not establish the connection at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387) at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414) at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801) at java.sql.DriverManager.getConnection(DriverManager.java:620) at java.sql.DriverManager.getConnection(DriverManager.java:200) at TestRainDB.main(TestRainDB.java:26)
Je me suis dit qu'il devait y avoir un problème réseau box ou autre, j'ai essayé d'ouvrir le port 1521 j'ai vérifié le listener.ora le port est OK..
Les machines ping entre elle.
J'ai essayé ça :
Un telnet 192.168.0.19 1521 ne donne rien..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 (obvious) IP address is incorrect - try PING The port is not open, or is blocked by a firewall - try TELNET The DB listener is not running or is binding to a different network interface - again, TELNET should confirm this (also use Oracle client tools to connect) No local ports are available for the out-going connection (unlikely) - only if you're making thousands of connections, or creating hundreds of new connections every minute.
Je n'ai pas d'oracle client tools à disposition..
J'ai essayé en local sur la même machine avec deux vm : pareil...
Voila je n'arrive pas trouver la solution par moi-même c'est pourquoi je sollicite votre aide.
Merci d'avance
Partager