java.sql.SQLException: Io 异常: Connection reset
当数据库连接池中的连接被创建而长时间不使用的情况下,该连接会自动回收并失效,但客户端并不知道,在进行数据库操作时仍然使用的是无效的数据库连接,这样,就导致客户端程序报“ 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"
/>
以上是从网上搜到一篇文章。网上跟这个问题相关的解决思路是Connection Reset的原因有可能有以下几种原因:
1.配置的数据连接池的连接数不够用;
2.数据库的连接池中的连接,长时间不用,数据库主动断开连接,而客户端不知道,在用的时候仍然拿到的是无效的连接;
分别对应以上的两种猜想的原因,进行处理:
1.配置连接池的最大、最小、空闲连接数等;
2.配置对连接池里的连接进行有效性检查,如,配置有效性连接检查sql语句,配置是否进行有效性检查等;
相关推荐
Caused by: java.net.UnknownHostException: openapi.alipay.com
Caused by: java.lang.OutOfMemoryError: PermGen space解决方案, avax.servlet.ServletException: java.lang.OutOfMemoryError: PermGen space at org.apache.jasper.servlet.JspServlet.service(JspServlet.java...
Caused by: android.system.ErrnoException: write failed: ENOSPC (No space lef
Android Caused by: java.lang.ClassNotFoundException解决办法 出现问题: 08-13 18:29:22.924: E/AndroidRuntime(1875): Caused by: Java.lang.ClassNotFoundException:XXXXX in loader dalvik.system....
主要介绍了Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
NULL 博文链接:https://zhang-zling.iteye.com/blog/980488
异常:Caused by: java.lang.IllegalStateException: Method has too many Body parameters Caused by: java.lang.IllegalStateException: Method has too many Body parameters: public abstract ...
整个系统都没有错误,但是在发布运行后,控制台上却抛出了这样的异常: java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
NULL 博文链接:https://redarmychen.iteye.com/blog/463864
java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK ……
本文主要介绍了关于MySQL存储表情报错:java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x92\xA9\x0D\x0A…’的相关解决方法,分享出供大家参考学习,下面话不多说了,来一起看看详细的介绍: ...
oracle 10g 数据库驱动下载:oracle jdbc dirver
java.lang.NoSuchFieldError: Companion 问题的解决方案
java发布wsdl部署到was 8.5报错的时候引入的jar包,比如如下情况: Caused by: java.lang.NoClassDefFoundError: com.sun.org.apache.xml.internal.resolver.CatalogManager at ...
1、写在开头 标题之前我想说一下Linux的mysql真的实在是太坑了。太坑了。总是会出现这样那样的你想不...4、今天要说的就是 没有打开only_full_group_by Cause:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorExcepti
Caused by: java.sql.SQLException: java.lang.ClassNotFoundException: org.apache.hive.jdbc.HiveDriver at com.trs.gateway.commons.hive.HiveFeature.getConnection(HiveFeature.java:57) at ...
网上查了很多,都说不满足主键约束啥的等等都没解决,我的问题主要是删除记录的时候删不了,最后发现是中间表的外键默认删除时是RESTRICT, 当取值为No Action或者Restrict时,则当在父表(即外键的来源表)中删除...
主要介绍了Caused by: android.os.NetworkOnMainThreadException错误解决办法,本文提供了2种解决方法,需要的朋友可以参考下
NULL 博文链接:https://geyubin.iteye.com/blog/779330