Mysql上线长时间以后重新发起请求报错
mysql机制及错误原因:当连接闲置超过八小时后,mysql会自动断开连接,此时连接失效,但是数据库认为此时连接依然有效,连接的时候发现失效,报错。
解决办法:增加对连接池中连接的测试/验证,防止数据库认为连接已死而Web应用服务器认为连接还有效
添加参数:
testOnBorrow:检测池里连接的可用性 设置为true是会见降低性能
validationQuery:验证数据库连接的查询语句
testWhileIdle:建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
public static final String DBDRIVER = "com.mysql.jdbc.Driver";
public static final String DBURL = "jdbc:mysql://xxx.xxx.xx.xx:3306/omslocal?useSSL=false&autoReconnect=true&testWhileIdle=true&testOnBorrow=true&validationQuery=select 1"; //考虑性能,此处请酌情修改
public static final String DBUSER = "xxx";
public static final String PASSWORD = "xxx";public static java.sql.Connection connection = null;
public static java.sql.PreparedStatement preparedStatement = null;
public static java.sql.ResultSet resultSet = null;public static String getConnection() {try {Class.forName(DBDRIVER);DriverManager.setLoginTimeout(5);connection = DriverManager.getConnection(DBURL, DBUSER, PASSWORD);return "success";} catch (ClassNotFoundException e) {return "ClassNotFoundException";} catch (SQLException e) {return e.toString();}
}
参考配置:
<!--initialSize: 初始化连接-->
<property name="initialSize" value="5"/> <!--maxIdle: 最大空闲连接-->
<property name="maxIdle" value="10"/> <!--minIdle: 最小空闲连接-->
<property name="minIdle" value="5"/> <!--maxActive: 最大连接数量-->
<property name="maxActive" value="15"/> <!--removeAbandoned: 是否自动回收超时连接-->
<property name="removeAbandoned" value="true"/> <!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->
<property name="removeAbandonedTimeout" value="180"/> <!--maxWait: 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒-->
<property name="maxWait" value="3000"/> <property name="validationQuery">
<value>SELECT 1</value>
</property> <property name="testOnBorrow">
<value>true</value>
</property>
Mysql上线长时间以后重新发起请求报错相关推荐
- jedisPool.getResource()方法长时间无响应并且不报错
一个Java Web的系统需要动态根据Redis地址获取数据,截取相关代码如下: 获取连接的方法: public static JedisCluster getConn(String host, in ...
- mysql 5.1 concat min_MySQL 5.1+ 数据库报错注入利用
在MySQL 5.1+ 数据库上,常用的报错注入利用 1.通过floor报错 可以通过如下一些利用代码 and select 1 from (select count(*),concat(versio ...
- ajax请求接口连不上会报错吗_服务端有异常, 导致: Ajax 请求报错 net::ERR_INCOMPLETE_CHUNKED_ENCODING...
服务端有异常, 导致: Ajax 请求报错 net::ERR_INCOMPLETE_CHUNKED_ENCODING 但是,这个 Ajax Http 接口使用浏览器可以直接返回.表明,Ajax 的 G ...
- 关于Node.js的httpClieint请求报错ECONNRESET的原因和解决措施
原文: 关于Node.js的httpClieint请求报错ECONNRESET的原因和解决措施 自己的一点理解: 1: Node.js提供的HttpServer默认设置了超时时间为2分钟,当一个请求的 ...
- ajax jsonp请求报错not a function的解决方案
ajax jsonp请求报错not a function的解决方案 参考文章: (1)ajax jsonp请求报错not a function的解决方案 (2)https://www.cnblogs. ...
- python https请求报错:SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] 解决方法
python爬虫,使用requests库发送https请求报错:SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] 解决方法: imp ...
- mysql数据库表字段使用DESC等关键字报错及解决方法
mysql数据库表字段使用DESC等关键字报错及解决方法 参考文章: (1)mysql数据库表字段使用DESC等关键字报错及解决方法 (2)https://www.cnblogs.com/li--xi ...
- Oracle EBS PAC定期成本分配处理程序请求报错:30011一个无效帐户与正在处理的物料关联
Oracle EBS版本: RDBMS : 12.1.0.2.0 Oracle Applications : 12.2.6 前提条件: 1.启用"MRP:调试模型" 配 ...
- http请求报错Illegal character in query at index 303的解决方法
http请求报错"Illegal character in query at index 303"的解决方法 执行jmeter的http请求时,请求失败,在Sampler resu ...
最新文章
- Angular使用@Input和@Output实现父子组件互相传参(类似Vue的props和this.emit)
- 同步通信和异步通信区别
- python上下文管理关键字_详解 Python 中的 with 与 上下文管理器
- 【动态规划】P1057 传球游戏
- java ee 设计模式_Java EE 设计模式解析与应用_源雷技术空间
- frp内网穿透并实现开机自启动
- Azure云平台学习之路(一)——Azure简介
- 巧用Photoshop为透明玻璃杯抠图
- 计算机管理声音视屏不见,电脑视频没有声音要如何解决,戳进来看看!
- NOIP2016 “西湖边超萌小松鼠” 模拟赛
- 半监督学习笔记(四):熵最小化、代理变量
- 什么是反向链接?如何获得更多反向链接?
- RFID叉车读写器在智能仓库收发货环节中的应用-铨顺宏
- JuiceFS 在大搜车数据平台的实践
- 士兵杀敌(三)RMQ板子
- 为了在nano上进行远程连接
- React 自定义表单实现
- 造轮子之图片轮播组件(swiper)
- 【简易笔记】计算机视觉与深度学习(全连接神经网络、卷积) EP2
- K8 SEO全能营销--抢沙发,只要是新帖,你就是占沙发
热门文章
- 苹果iOS证书制作教程
- 硬件工程师基础知识(http://huarm.taobao.com/ )
- 怎样娶到比尔盖茨的女儿?
- 还在吐槽翻译的外版书质量差吗?谈谈我个人的理解
- java计算机毕业设计失物招领信息交互平台源代码+数据库+系统+lw文档
- 边缘计算(雾计算)——AI+IoT的热词
- ABP框架官网例子实践(2)(ASP.NET core+Multi Page Web Application)
- abp 部署到ubuntu_centos和ubuntu系列总结 - 白色的番茄
- 解决删除谷歌浏览器chrome注册表残留问题
- 计算机室在初中英语教学中的应用,信息技术在初中英语教学中的应用探析