TDM Geschrieben 28. Juli 2006 Geschrieben 28. Juli 2006 Hallo, Ich versuche mich seit Längerem an einem DBMS. Es soll sich mit einer Datenbank auf einem anderen Rechner verbinden. Am Anfang hatte ich für Testzwecke MySQL genommen (mit dem mysql-connector-java). Nun soll ich aber auf Oracle umsteigen (ojdbc14.jar). Problem ich, dass ich immer beim Verbinden folgenden Fehler bekomme: E/A - Exception: The Networkadapter could not establishthe connection Ich weiß absolut nicht woran das liegen könnte. Ich habe eine (eigentlich) unabhängig Datenbankklasse als Singleton. Über die Funktion init() wird dieser einmalig initialisiert: private void init() { ResourceBundle rb = ResourceBundle.getBundle(PROP_FILE_NAME); dbUrl = rb.getString(DB_SERVICE_URL); dbDriver = rb.getString(DB_DRIVER); dbUser = rb.getString(DB_USER); dbPass = rb.getString(DB_PASS); try { Class clazz = Class.forName(dbDriver); Driver driver = (Driver) clazz.newInstance(); DriverManager.registerDriver(driver); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } mit getConnection und openConnection wird diese Connection dann von anderen Klassen aufgerufen: public static Connection getConnection() throws SQLException { return getInstance().openConnection(); } private Connection openConnection() throws SQLException { return DriverManager.getConnection(dbUrl, dbUser, dbPass); } Im init() sieht man ja, dass ich ResourceBundle genutzt hatte, darin stehen folgende Einträge: #Uncomment the following when using a Oracle DB db.service.url=jdbc:oracle:thin:@(description=(address_list=(address=(protocol=tcp)(host=Server1)(port=1610))(address=(protocol=tcp)(host=Server2)(port=1531)))(source_route=yes)(connect_data=(service_name=JAVA.TEST))) db.driver=oracle.jdbc.driver.OracleDriver db.user=user db.pass=pw #Uncomment the following when using a MySQL DB #db.service.url=jdbc:mysql://localhost/java #db.driver=com.mysql.jdbc.Driver #db.user=user #db.pass=pw jetzt ist die Frage: wo ist mein Fehler ? denn MySQL ging soweit. und der OracleService-URL wurde mir so von unserem Datenbankadministrator gesagt PS: Ich hatte mir ein Log schreiben lassen, welches die Exception ausgibt. Wenn ich das ganze aber mit ANT kompiliert und zu einem jar gemacht habe, wird zwar noch das Log erstellt aber da steht dann: No suitable driver Zitieren
geloescht_Newlukai Geschrieben 28. Juli 2006 Geschrieben 28. Juli 2006 (host=Server2)(por t=1531) Mir fällt erst mal nur auf, daß da ein Leerzeichen zuviel ist. Und dann weiß ich nciht, ob man die URL wirklich so schreiben kann. Hast Du Dich mit einem anderen Tool mit der Datenbank verbinden können? Normalerweise würde das ja so oder so. ä. aussehen: jdbc:oracle:thin:@Server1:1610:JAVA.TEST Versuch's erst mal mit DBVisualizer oder so. Zitieren
TDM Geschrieben 28. Juli 2006 Autor Geschrieben 28. Juli 2006 hmm... also in der Datei seh ich nichts von Leerzeichen... weiß auch ne wie das da hinkam Der URL funktioniert mit dem Oracle SQL Developer von Oracle selber. Und der ist auch in Java geschrieben. Edit: jdbc:oracle:thin:@Server1:1610:JAVA.TEST hatte ich schon mit beiden Servern probiert - geht auch nicht Zitieren
Amstelchen Geschrieben 28. Juli 2006 Geschrieben 28. Juli 2006 E/A - Exception: The Networkadapter could not establishthe connection - bitte mal die TCP-verbindung zum listener testen: "telnet <host> <port>" - sprich telnet server1 1610 / server2 1531. - bitte mal testen, ob tnsping am client funktioniert. - service name ist der richtige? - in deinem connect string ist port 1531 eingegeben, oracle verwendet standardmässig allerdings 1521 ... ist das beabsichtigt oder ein tippfehler? s'Amstel Zitieren
TDM Geschrieben 28. Juli 2006 Autor Geschrieben 28. Juli 2006 PS: Ich hatte mir ein Log schreiben lassen, welches die Exception ausgibt. Wenn ich das ganze aber mit ANT kompiliert und zu einem jar gemacht habe, wird zwar noch das Log erstellt aber da steht dann: No suitable driver Das kam mir gleich etwas spanisch vor... (auch wenn es englisch ist) Hatte vergessen, den Classpath im Manifest anzupassen :floet: Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.