ibatis出现java.sql.SQLException: Io 异常: Connection reset

出现情况:

            在服务器开启一段时间后,再调用数据库连接时就会报这个错,或者网络不稳定是进行数据库查询时也会报这个异常。

异常截图:

 

 

异常原因:

            在连接数据库的线程池中,因为连接了太久没有使用时,系统会回收这个数据库连接,所以过一段时间后执行数据库连接操作时,项目可能会使用这失效的数据库连接去连接数据库,导致这个异常。

 

解决方法:

           在数据库连接配置文件中加入<property name="validationQuery" value="select * from dual" ></property>

这样在进行数据库连接的时候,会先进行测试,测试连接是否可用,如果连接为无效连接则在连接池中重新获取新的数据库连接

原配置文件:

          

<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE sqlMapConfig        
    PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"        
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
	<settings useStatementNamespaces="true" />
	<transactionManager type="JDBC">
		<dataSource type="SIMPLE">
			<property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver" />
			<property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@127.0.0.1:1521:ORCL" />
			<property name="JDBC.Username" value="xxx" />
			<property name="JDBC.Password" value="xxx" />
			<property name="JDBC.maxPoolSize" value="20"></property>
			<property name="JDBC.minPoolSize" value="1"></property>
		</dataSource>
	</transactionManager>
	<sqlMap resource="conf/bankCustInfo.xml" />
</sqlMapConfig>

 

修改后:

<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE sqlMapConfig        
    PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"        
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
	<settings useStatementNamespaces="true" />
	<transactionManager type="JDBC">
		<dataSource type="SIMPLE">
			<property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver" />
			<property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@127.0.0.1:1521:ORCL" />
			<property name="JDBC.Username" value="xxx" />
			<property name="JDBC.Password" value="xxx" />
			<property name="JDBC.maxPoolSize" value="20"></property>
			<property name="JDBC.minPoolSize" value="1"></property>
                        <property name="validationQuery" value="select * from dual" ></property>
		</dataSource>
	</transactionManager>
	<sqlMap resource="conf/bankCustInfo.xml" />
</sqlMapConfig>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值