天天看點

java連接配接oracle失敗_Oracle JDBC連接配接失敗

我遇到一個非常奇怪的問題,我有幾個Junit測試用例建立JDBC Oracle連接配接并在完成後關閉 . 例如,我有5個junit

FetchTest

InsertTest

UpdateTest

DeleteTest

前2個測試用例運作得非常好,但是當第3個測試用例嘗試通過JDBC連接配接到Oracle時,它通過Exception

使用java.net.SocketOutputStream.socketWrite0(本機方法)中的DriverManager在java.net.SocketOutputStream.write的java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)建立連接配接對象時發生異常(SocketOutputStream.java:159 )在oracle.net.ns.ns.Net.utNextPacket(NetInputStream.java)的oracle.net.ns.NetOutputStream.flush(NetOutputStream.java:211)的oracle.net.ns.DataPacket.send(DataPacket.java:199) 227)oracle.net.ns.NetInputStream.read(NetInputStream.java:175)at oracle.net.ns.NetInputStream.read(NetInputStream.java:100)at oracle.net.ns.NetInputStream.read(NetInputStream.java) :85)at oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:78)的oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:122)at oracle.jdbc.driver.T4CSAREngine.unmarshalUB1(T4CMAREngine . java:1179)在oracle.jdbc.dracle上的oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1155) river.T4CTTIfun.receive(T4CTTIfun.java:279)位于oracle.jdbc的oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:366)位于oracle.jdbc的oracle.jdbc.driver.PhysicalConnection . (PhysicalConnection.java:531)的oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:359)上的.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:752) .driver.T4CConnection . (T4CConnection.java:221)位于oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32),位于java.sql的oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503) .driverManager.getConnection(DriverManager.java:571)at java.sql.DriverManager.getConnection(DriverManager.java:215)

然後我的第四次測試也會正常運作,獲得連接配接并按預期删除資料 .

我也試圖忽略第三個測試用例,然後第四個測試用例給出相同的異常 .

這個例外的可能原因是什麼?

這是時間問題嗎?因為這個異常發生在Jenkins的每日建構中

java.sql.SQLRecoverableException:IO錯誤:通過對等方重置連接配接:套接字寫入錯誤

在oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:421)

at oracle.jdbc.driver.PhysicalConnection . (PhysicalConnection.java:531)

at oracle.jdbc.driver.T4CConnection . (T4CConnection.java:221)

at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)

at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)