java.sql.SQLException: Io 异常: Connection reset
2015-08-17 23:14
507 查看
当数据库连接池中的连接被创建而长时间不使用的情况下,该连接会自动回收并失效,但客户端并不知道,在进行数据库操作时仍然使用的是无效的数据库连接,这样,就导致客户端程序报“ java.sql.SQLException: Io 异常: Connection reset” 或“java.sql.SQLException 关闭的连接”异常。
在配置数据源后面加上
<property name="validationQuery" value="select * from dual"/>
配置后,客户端在使用一个无效的连接时会先对该连接进行测试,如果发现该连接已经无效,则重新从连接池获取有效数据库连接来使用。
在tomcat的context.xml里面设置数据源时候可参考:
<Resource auth="Container"
driverClassName="oracle.jdbc.OracleDriver"
type="javax.sql.DataSource"
url="jdbc:oracle:thin:@11.11.11.45:1521:orcl"
name="jdbc/login"
username="login"
password="login"
maxActive="15"
maxIdle="10"
maxWait="-1"
minIdle="2"
removeAbandonedTimeout="5"
testOnBorrow="true"
testWhileIdle="true"
testOnReturn="true"
removeAbandoned="true"
logAbandoned="true"
validationQuery="select 1 from dual"
/>
<Resource auth="Container"
driverClassName="oracle.jdbc.OracleDriver"
type="javax.sql.DataSource"
url="jdbc:oracle:thin:@11.11.11.44:1521:orcl"
name="jdbc/intraweb"
username="intraweb"
password="intraweb"
maxActive="15"
maxIdle="10"
maxWait="-1"
minIdle="2"
removeAbandonedTimeout="5"
testOnBorrow="true"
testWhileIdle="true"
testOnReturn="true"
removeAbandoned="true"
logAbandoned="true"
validationQuery="select 1 from dual"
/>
使用ALTER SYSTEM KILL SESSION终止一个会话。下面的例句sid 7,serial# 15:
ALTER SYSTEM KILL SESSION '7,15';
在配置数据源后面加上
<property name="validationQuery" value="select * from dual"/>
配置后,客户端在使用一个无效的连接时会先对该连接进行测试,如果发现该连接已经无效,则重新从连接池获取有效数据库连接来使用。
在tomcat的context.xml里面设置数据源时候可参考:
<Resource auth="Container"
driverClassName="oracle.jdbc.OracleDriver"
type="javax.sql.DataSource"
url="jdbc:oracle:thin:@11.11.11.45:1521:orcl"
name="jdbc/login"
username="login"
password="login"
maxActive="15"
maxIdle="10"
maxWait="-1"
minIdle="2"
removeAbandonedTimeout="5"
testOnBorrow="true"
testWhileIdle="true"
testOnReturn="true"
removeAbandoned="true"
logAbandoned="true"
validationQuery="select 1 from dual"
/>
<Resource auth="Container"
driverClassName="oracle.jdbc.OracleDriver"
type="javax.sql.DataSource"
url="jdbc:oracle:thin:@11.11.11.44:1521:orcl"
name="jdbc/intraweb"
username="intraweb"
password="intraweb"
maxActive="15"
maxIdle="10"
maxWait="-1"
minIdle="2"
removeAbandonedTimeout="5"
testOnBorrow="true"
testWhileIdle="true"
testOnReturn="true"
removeAbandoned="true"
logAbandoned="true"
validationQuery="select 1 from dual"
/>
使用ALTER SYSTEM KILL SESSION终止一个会话。下面的例句sid 7,serial# 15:
ALTER SYSTEM KILL SESSION '7,15';
相关文章推荐
- JAVA基础知识笔记(第三章)
- JAVA环境搭建笔记(第二章)
- java基础复习
- Eclipse中修改Maven配置
- Java集合(13)--LinkedHashMap源码分析
- java中为什么要给类使用代理?它有哪些好处?
- java内存泄漏例子
- Myeclipse中注释的字体如何改字号大小及颜色
- Java集合(12)--TreeSet源码分析
- Java集合(11)--TreeMap源码分析
- Java静态方法间接赋值赋值非静态变量
- java(08-17)
- Java NIO系列教程(十) Java NIO DatagramChannel
- Java集合(10)--HashSet源码分析
- 利用highStock生成报表(SpringMVC整合)
- Spring与Hibernate与Struts整合(一)配置文件
- Java Servlet【4】一个小的Servlet登录界面+页面跳转
- Java中Iterator(迭代器)的一般用法
- Java集合(9)--Collection 和 Collections
- 大龄屌丝自学笔记--Java零基础到菜鸟--003