0 0

SSH工程java.sql.SQLException: Io 异常: Connection reset10

1.系统采用SSH架构。
2.部署环境Tomcat5.5,oracle10g
3.数据源配置
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName"><value>${jdbc.driver}</value></property>
		<property name="url"><value>${jdbc.url}</value></property>
		<property name="username"><value>${jdbc.username}</value></property>
		<property name="password"><value>${jdbc.password}</value></property>
		<property name="removeAbandoned"><value>true</value></property>
		<property name="removeAbandonedTimeout"><value>300</value></property>
		<property name="logAbandoned"><value>true</value></property>
		<property name="maxActive"><value>50</value></property>
	</bean>

统长时间无访问时,再次访问就出现
java.sql.SQLException: Io 异常: Connection reset
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
        at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:480)
        at oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:1175)
        at org.logicalcobwebs.proxool.ProxyConnection.reallyClose(ProxyConnection.java:192)
        at org.logicalcobwebs.proxool.ConnectionPool.removeProxyConnection(ConnectionPool.java:429)
        at org.logicalcobwebs.proxool.ConnectionPool.expireProxyConnection(ConnectionPool.java:462)
        at org.logicalcobwebs.proxool.HouseKeeper.sweep(HouseKeeper.java:106)
        at org.logicalcobwebs.proxool.HouseKeeperThread.run(HouseKeeperThread.java:39)
[2011-09-04 21:19:11] ERROR org.logicalcobwebs.proxool.ProxyConnection.reallyClose(ProxyConnection.java:194) - #0061 enc
ountered errors during destruction:

请大家帮忙看看,非常感谢

问题补充:
hjwaqy 写道
设置了rmoveAbandoned=true 那么在getNumActive()快要到getMaxActive()的时候,系统会进行无效的Connection的回收,回收的 Connection为removeAbandonedTimeout(默认300秒)中设置的秒数后没有使用的Connection;logAbandoned=true的话,将会在回收事件后,在log中打印出回收Connection的错误信息,包括在哪个地方用了Connection却忘记关闭了,在调试的时候很有用。

不知道回答的怎么样,共同学习吧!

谢谢,已经找到解决方法了,需要花时间来验证,大家遇到类似问题可以参考下这个http://hi.baidu.com/dobodo/blog/item/84d29e9529c899007af480f5.html
DAO 
2011年9月05日 09:53

1个答案 按时间排序 按投票排序

0 0

设置了rmoveAbandoned=true 那么在getNumActive()快要到getMaxActive()的时候,系统会进行无效的Connection的回收,回收的 Connection为removeAbandonedTimeout(默认300秒)中设置的秒数后没有使用的Connection;logAbandoned=true的话,将会在回收事件后,在log中打印出回收Connection的错误信息,包括在哪个地方用了Connection却忘记关闭了,在调试的时候很有用。

不知道回答的怎么样,共同学习吧!

2011年9月05日 10:24

相关推荐

Global site tag (gtag.js) - Google Analytics