我遇到了一个非常奇怪的问题,我有几个Junit测试用例创建JDBC Oracle连接并在完成后关闭。例如,我有5个junit
前两个测试用例运行得非常好,但是当第三个测试用例尝试通过JDBC连接到Oracle时,它通过Exception
使用DriverManager创建连接对象时发生异常 在java.net.SocketOutputStream.socketWrite0(Native Method)at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113) 在java.net.SocketOutputStream.write(SocketOutputStream.java:159)at oracle.net.ns.DataPacket.send(DataPacket.java:199)at oracle.net.ns.NetOutputStream.flush(NetOutputStream.java:211)at at oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java: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.readNextPacket(T4CSocketInputStreamWrapper.java:122) 在 oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:78) 在 oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1179) 在 oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1155) 在oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:279)at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)at at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:366) 在 oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:752) 在oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:359)at oracle.jdbc.driver.PhysicalConnection。(PhysicalConnection.java:531) 在oracle.jdbc.driver.T4CConnection。(T4CConnection.java:221) 在 oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) 在oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)at java.sql.DriverManager.getConnection(DriverManager.java:571)at java.sql.DriverManager.getConnection(DriverManager.java:215)
然后我的第四次测试也会正常运行,获得连接并按预期删除数据。
我也试图忽略第三个测试用例,然后第四个测试用例给出相同的例外。
此例外的可能原因是什么?
这是时间问题吗?因为这个异常发生在Jenkins的每日构建中
java.sql.SQLRecoverableException: IO Error: Connection reset by peer: socket write error at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:421) at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531) at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)