mysql的空闲8小时问题
在spring中配置数据源时,必须设定destroy-method="close"属性,以便spring容器关闭时,数据源能正常关闭。
如果数据库时mysql,如果数据源配置不当,则可能发生经典的“8小时问题”。原因是mysql在默认情况下如果发现一个连接的空闲时间超过8小时,会在数据库端自动关闭这个连接。而数据源不知道这个连接已经被数据库关闭,当他将这个“空闲”的连接交给DAO时,DAO就会报无法获取connection的异常。
如果采用DBCP默认配置,testOnBorrow属性默认值为true,数据源在将连接交给DAO前,会检测这个连接是否是正常的,如果有问题,会再取一个连接,所以不会有8小时问题。如果每次在交给DAO时都检测连接的有效性,则会再高并发时造成性能问题,因为这造成了更多的数据库访问请求。
另一种方式是:将testOnBorrow设置为false,而将testWhileIdle设置为true,再设置timeBetweenEvictionRunsMillis值。这样,DBCP会通过一个后台线程定时对空闲连接进行检测,当发现无用的空闲连接时,会将他们清除掉。只要将timeBetweenEvictionRunsMillis设置为小于8小时,那些被mysql关闭的空闲连接就可以被清除出去,从而避免“8小时问题”。
也可以设置mysql本身的interactive-timeout配置参数,更改空闲连接过期时间。在设置timeBetweenEvictionRunsMillis时,需要知道mysql的空闲连接最大过期时间
mysql的空闲8小时问题的更多相关文章
- mysql在空闲8小时之后会断开连接(默认情况)
调试程序的过程发现,在mysql连接空闲一定时间(默认8小时)之后会断开连接,需要重新连接,也引发我对重连机制的思考.
- MySql连接空闲8小时自动断开引起的问题
一.问题描述 最近遇到了一个奇怪的MySql数据库问题,好几次前一天晚上历史数据还正常存储,第二天早上来了看实时数据存储还正常,历史数据不存储了.找了好久也没找到问题.后来仔细想了想,历史数据设置 ...
- mysql 连接空闲超8小时自动断开连接问题(linux)
在mysql配置文件里添加wait_timeout和interactive_timeout两个值 [mysqld] wait_timeout= interactive_timeout= 超时时间,10 ...
- 解决mysql默认的8小时自动断开连接
语言:javaEE 框架:spring mvc+spring+mybatis 数据库:mysql8 WEB服务器:tomcat8 背景: 在试运营阶段发现发生“连接超时”异常 抛出异常: Cause: ...
- jdbc插入mysql时间差14个小时的解决方案
在java中new Date()输出的时间是没错的,插入到mysql后少了14个小时,原因是新版jdbc驱动的时区设置问题. 在jdbc连接url最后加上serverTimezone=GMT%2B8即 ...
- MySql日期加天数,小时,分钟...得到新的时间
在当前的日期上加三天,天数随便改: SELECT date_add(CURRENT_DATE(), interval 3 day); 在指定的日期上加三天: SELECT date_add('2014 ...
- JAVA插入数据到MySql少了8小时
这个问题,真的是找了很久. 之前以为是mysql的timezone有问题.根据网上的方法,把timezone改了,还是不起作用. 然后以为是java的问题,但试来试去java也不存在timezone不 ...
- mysql统计前24小时数据没有补0
SELECT t1. HOUR HOUR, COUNT(t2. HOUR) count FROM ( SELECT DATE_FORMAT( HOUR), '%y-%m-%d %H' ) HOUR F ...
- mysql查询最近一小时的数据
date_sub()函数: DATE_SUB(date,INTERVAL expr type) 实例: SELECT NOW(),DATE_SUB(NOW(),INTERVAL HOUR) as th ...
随机推荐
- Unknown type name 'UIColor" 的问题
遇到如下的问题 平时都没太注意创建UIViewController的时候Xcode给你引入的类库,所以解决方法是: 在.h里 #import <UIKit/UIKit.h> 解决问题!
- Solidworks to Urdf to Sdf
. The urdf using tree form that does not support parallel robots (close loop robots). . The sdf usin ...
- IIs7下配置php
因为一个朋友的服务器是window的需要两个版本的php,一个是现在用的php5.2,现在要用一个5.3的版本,所以考虑IIS下的配置. 1.首先当然是要下载一份php了,我采用的是免安装的,很方便, ...
- Palindrome---poj3974(最大回文子串manacher)
题目链接:http://poj.org/problem?id=3974 和hdu上的最长回文题一样,manacher的模板题 #include<stdio.h> #include<s ...
- 爬虫之UserAgent
UserAgent简介 UserAgent中文名为用户代理,是Http协议中的一部分,属于头域的组成部分,UserAgent也简称UA.它是一个特殊字符串头,是一种向访问网站提供你所使用的浏览器类型及 ...
- C的指针疑惑:C和指针10(结构和联合)
结构也可以作为传递给函数的参数,它们也可以作为返回值从函数返回,相同类型的结构体变量相互之间可以赋值. 申明结构时使用另一种良好技巧是用typedef创建一种新的类型. typedef struct{ ...
- oracle的字符集设置与乱码
oracle的字符集设置与乱码 字符集问题一直叫人头疼,究其原因还是不能完全明白其运作原理. 在整个运行环节中,字符集在3个环节中发挥作用: 1.软件在操作系统上运作时的对用户的显示,此时采用操作系统 ...
- web Servlet 3.0 新特性之web模块化编程,web-fragment.xml编写及打jar包
web Servlet 3.0 模块化 原本一个web应用的任何配置都需要在web.xml中进行,因此会使得web.xml变得很混乱,而且灵活性差,因此Servlet 3.0可以将每个Servlet. ...
- VirtualBox AndroidX86 网络设置
在Virtualbox中,把虚拟机网络设为“网络地址转换(NAT)”模式,高级中控制芯片(T)选择:PCnet-FAST III(Am79C973), 然后启动你的android-x86 4.0虚拟机 ...
- 404 Not Found 探秘Nginx转发处理流程
一.问题描述 访问一个链接地址后报404 Not Found nginx/1.10.2 1 112.95.211.154 - - [08/Mar/2018:15:22:21 +0800] " ...