我遇到一个非常奇怪的问题,我有几个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 . <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)