使用dbcp连接池,发生Connection reset 的异常
各位大神好:
我写了一个标准的webservice程序,通过dbcp连接池,来连接oracle数据库,oracle版本12c,部署在tomcat7上面,然后给客户端调用。
在调用过程中,我的webservice程序时不时的会出现Connection reset 异常(webservice程序和oracle在不通的服务器),然后通过搜索说,
添加这个 -Djava.security.egd=file:/dev/../dev/urandom就行,但是时间验证也是不能解决,以下是发生异常的是内容,
有哪位大神来帮忙回复下,或者提供点思路,谢谢了。
WARNING: An internal object pool swallowed an Exception.
java.sql.SQLRecoverableException: IO Error: Connection reset
at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:770)
at oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:4585)
at org.apache.commons.dbcp2.DelegatingConnection.closeInternal(DelegatingConnection.java:236)
at org.apache.commons.dbcp2.PoolableConnection.reallyClose(PoolableConnection.java:243)
at org.apache.commons.dbcp2.PoolableConnectionFactory.destroyObject(PoolableConnectionFactory.java:334)
at org.apache.commons.pool2.impl.GenericObjectPool.destroy(GenericObjectPool.java:897)
at org.apache.commons.pool2.impl.GenericObjectPool.evict(GenericObjectPool.java:793)
at org.apache.commons.pool2.impl.BaseGenericObjectPool$Evictor.run(BaseGenericObjectPool.java:1036)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:118)
at java.net.SocketOutputStream.write(SocketOutputStream.java:159)
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:426)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:390)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249)
at oracle.jdbc.driver.T4C7Ocommoncall.doOLOGOFF(T4C7Ocommoncall.java:59)
at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:757)
... 9 more