2016-08-02 10 views
2

を切断された私はが流れるソースを使用してOracle DB(11グラム)に接続するためのJavaを使用してみてください:JavaがORACLEDBに接続します。java.sql.SQLRecoverableException:IOエラー:パイプが

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; 
    } 

それが仕事ですよく私の古いデータベース上、それはそれは、接続を取得することはできません、エラーがあるの新しいデータベースに

を失敗しています:

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

何ですか:java.sql.SQLRecoverableException:IOエラー:パイプがされていますカットを意味する? このエラーを解決するのを手伝ってください。

ありがとうございます。

答えて

0

What is: java.sql.SQLRecoverableException: IO error: The pipe has been cut mean ?

この質問への答えは次のようにJavaDocの中で与えられる:

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 )

主な問題は、Oracle JDBCドライバの間違った名前を使用していることかもしれません。正しいドライバ名は

oracle.jdbc.OracleDriver 

となりますので、oracle.jdbc.driver.OracleDriverと置き換えてください。次のように

そして、接続URLは次のようになります。

jdbc:oracle:thin:@IP_ADDRESS:1521/SERVCE_NAME 

HereあなたはJDBCドライバを使用する方法をより詳細な情報をご覧いただけます。

+0

ありがとう、私は試しましたが、同じエラーが発生します。 –

+0

ドライバと接続URLを修正しても問題ありません。デバッガを使用して、この例外をどの時点で取得しているかを知ることができます。 – ujulu

+0

残念ながら、私はローカルマシン(日食)からDBにアクセスすることはできません。私は接続をテストするjarファイルを作成する必要があります。エラーは、リモートサーバーまたはデータベースサーバーから発生している可能性があります。根本的な原因はどこにあるのか分かりません。 –

関連する問題