Ich bin versuchen, Java zu verwenden, um Oracle-DB (11 g) mit strömender Quelle zu verbinden:Java eine Verbindung zu OracleDB: java.sql.SQLRecoverableException: IO-Fehlern: Das Rohr geschnitten wurde
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
return;
}
Connection connection = null;
try {
connection = DriverManager.getConnection("jdbc:oracle:thin:@//IP_ADDRESS:1521/SERVCE_NAME", "USER", "PASS");
} catch (SQLException e) {
e.printStackTrace();
return;
}
Es ist Arbeit gut auf meiner alten Datenbank, aber es ist auf neue Datenbank scheitert
es ist nicht die Verbindung bekommen, ist der Fehler:
java.sql.SQLRecoverableException: IO error: The pipe has been cut. at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:752) at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:666) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:566) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:247) at main.main(main.java:30) Caused by: java.net.SocketException: pipe has been cut. at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) at java.net.SocketOutputStream.write(SocketOutputStream.java:153) at oracle.net.ns.DataPacket.send(DataPacket.java:209) at oracle.net.ns.NetOutputStream.flush(NetOutputStream.java:215) at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:302) at oracle.net.ns.NetInputStream.read(NetInputStream.java:249) at oracle.net.ns.NetInputStream.read(NetInputStream.java:171) at oracle.net.ns.NetInputStream.read(NetInputStream.java:89) at oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:123) at oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:79) at oracle.jdbc.driver.T4CMAREngineStream.unmarshalUB1(T4CMAREngineStream.java:429) at oracle.jdbc.driver.T4C8TTIdty.receive(T4C8TTIdty.java:706) at oracle.jdbc.driver.T4C8TTIdty.doRPC(T4C8TTIdty.java:613) at oracle.jdbc.driver.T4
CConnection.connect(T4CConnection.java:1607) at oracle.jdbc.driver.T4
CConnection.logon(T4CConnection.java:496) ... 6 more
Was ist: java.sql.SQLRecoverableException: IO-Fehler: das Rohr wurde Schnittmittel? Bitte helfen Sie mir, diesen Fehler zu vermeiden.
Vielen Dank im Voraus.
The subclass of SQLException thrown in situations where a previously failed operation might be able to succeed if the application performs some recovery steps and retries the entire transaction or in the case of a distributed transaction, the transaction branch. At a minimum, the recovery operation must include closing the current connection and getting a new connection. (Source JavaDoc )
für den Oracle-JDBC-Treiber sein, dass Sie verwenden einen falschen Namen Das Hauptproblem könnte:
Vielen Dank für Ihre Antwort, ich habe es versucht, aber es ist der gleiche Fehler auftreten. –
Von dem, was ich sehe, sollte es kein Problem geben, wenn Sie den Treiber und die Verbindungs-URL korrigiert haben. Sie können den Debugger verwenden, um herauszufinden, an welchem Punkt Sie diese Ausnahme erhalten. – ujulu
Leider kann ich keinen Zugriff auf DB von lokalen Computer (Eclipse); Ich muss JAR-Datei erstellen, um die Verbindung zu testen. Möglicherweise kommt der Fehler vom Remote-Server oder Datenbankserver; aber ich weiß nicht wo die Ursache ist. –