文档章节

Mysql“8小时问题”

村东邹师傅
 村东邹师傅
发布于 2015/04/24 11:25
字数 402
阅读 185
收藏 7
点赞 0
评论 0

 假设你的数据库是mysql,如果数据源配置不当,将可能发生经典的“8小时问题”。原因是mysql在默认情况下,如果发现一个连接的空闲时间超过8小时,将会在数据库端自动关闭这个连接。而数据源并不知道这个连接已经关闭了,当它将这个无用的连接返回给某个dao时,dao就会报无法获取connection异常。

    如果采用dbcp的默认配置,由于testOnBorrow属性的默认值是true,数据源在将连接交给dao前,会事先检测这个连接是否是好的,如果连接有问题(在数据库端被关闭),则会取一个其他的连接给dao。所以并不会有“8小时问题”。如果每次将连接交给dao时都检测连接的有效性,在高并发的应用中将会带来性能的问题,因为它会需要更多的数据库访问请求。

    一种推荐的高效的方式是:将testOnBorrow设置为false,而将“testWhileIdle”设置为true,再设置好testBetweenEvictionRunsMillis值(小于8小时)。那些被mysql关闭的连接就可以别清除出去,避免“8小时问题”。

    当然,mysql本身也能调整interactive-timeout(以秒为单位)配置参数,更改空闲连接的过期时间。所以,在设置timeBetweenEvictionRunsmMillis值时,必须首先获知mysql的空闲连接的最大过期时间。

    c3p0对于有效连接的检测,请参照dbcp配置方式。

© 著作权归作者所有

共有 人打赏支持
村东邹师傅
粉丝 8
博文 15
码字总数 25501
作品 0
朝阳
程序员
mysql的空闲8小时问题

  在spring中配置数据源时,必须设定destroy-method="close"属性,以便spring容器关闭时,数据源能正常关闭。   如果数据库时mysql,如果数据源配置不当,则可能发生经典的“8小时问题”...

宇的季节
2017/12/01
0
0
Mysql的wait_timeout

问题: ssh+mysql项目,数据源为dbcp,隔夜后访问会出现下列错误 Could not open Hibernate Session for transaction; nested exception is org.hibernate.TransactionException: JDBC begin......

CCNU
2012/12/04
0
0
DBCP数据库连接池MySQL8小时问题的解决方法

解决的思路是:MySQL配置中my.cnf的waittimeout值一定要大于等于连接池种的idletimeout值。否则mysql会在wait_timeout的时间后关闭连接,默认的关闭连接的时间为8小时。 MySQL连接时,服务器...

guanzhenxing
2014/03/27
0
1
奇怪连接mysql数据库过1晚上后,报com.mysql.jdbc.exceptions.jdbc4.CommunicationsException

问题如下: 1.系统使用hibernate连接数据库,分别连接两个数据库 配置如下: (1): jdbc:mysql://10.200.89.38:3306/ad_sso (2) jdbc:mysql://10.200.89.38:3306/monitor_center 2. 启动...

小布丁女
2013/03/05
4.9K
2
解决MySQL 5数据库连接超时问题

最近碰到一个mysql5数据库的问题。就是一个标准的servlet/tomcat网络应用,后台使用mysql数据库。问题是待机一晚上后,第二天早上第一次登录总是失败。察看日志发现如下错误: “com.mysql.j...

Jesons
2015/01/12
0
2
c3p0、dbcp、tomcat jdbc pool 连接池区别

查看资料,得知dbcp和c3p0都是单线程的,在高并发的环境下性能会非常低下, 决定换用tomcat自带的jdbc-pool,关于jdbc-pool的项目介绍。 区别参考链接:http://www.open-open.com/lib/view/o...

张嘴吃药
2017/10/30
0
0
Communications link failure,The last packet

Last modified:2013-10-08 14:16:47 ** web网站使用MySQL数据库,今天突然报以下错误: Communications link failure,The last packet successfully received from the server was * milli......

mj4738
2014/03/31
0
1
mysql服务器默认关闭时间,这个她到底怎么管理的?

Mysql服务器默认的“wait_timeout”是8小时,如果connection空闲超过8个小时,Mysql将自动断开该 connection。这个说话很不理解,因为 我的测试是开启tomcat后页浏览器面访问一次数据库mysql...

awang
2012/11/12
302
2
Communications link failure,The last packet succes

最近做测试,发现Mysql 过一段时间会无法连接,导致数据库数据不一至,极其郁闷。 使用Connector/J连接MySQL数据库,程序运行较长时间后就会报以下错误: Communications link failure,The...

岸芷汀兰
2015/09/11
65
0
数据库连接池DBCP和C3P0的使用

hibernate开发组推荐使用c3p0; spring开发组推荐使用dbcp; hibernate in action推荐使用c3p0; 一. dbcp 在数据库服务器强行关闭连接或数据库服务重启后,无法reconnect 二. dbcp 连接池的创建...

mn_1127
2015/08/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

我的成长记录(一)

今天突然精神抖擞,在我的博客下新开一项分类>成长记录,专门记录每隔一段时间我的一点感悟吧。因为今天才专门花时间新开这样一个分类,所以以前有过的一些感悟没有记录下来,现在已经想不起...

dtqq
10分钟前
0
0
机器学习管理平台 MLFlow

最近工作很忙,博客一直都没有更新。抽时间给大家介绍一下Databrick开源的机器学习管理平台-MLFlow。 谈起Databrick,相信即使是不熟悉机器学习和大数据的工程湿们也都有所了解,它由Spark的...

naughty
今天
0
0
idea tomcat 远程调试

tomcat 配置 编辑文件${tomcat_home}/bin/catalina.sh,在文件开头添加如下代码。    CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7829" Idea端配......

qwfys
今天
1
0
遍历目录下的文件每250M打包一个文件

#!/usr/bin/env python # -*- utf-8 -*- # @Time : 2018/7/20 0020 下午 10:16 # @Author : 陈元 # @Email : abcmeabc@163.com # @file : tarFile.py import os import tarfile import thr......

寻爱的小草
今天
1
0
expect同步文件&expect指定host和要同步的文件&构建文件分发系统&批量远程执行命令

20.31 expect脚本同步文件 expect通过与rsync结合,可以在一台机器上把文件自动同步到多台机器上 编写脚本 [root@linux-5 ~]# cd /usr/local/sbin[root@linux-5 sbin]# vim 4.expect#!/...

影夜Linux
今天
1
0
SpringBoot | 第九章:Mybatis-plus的集成和使用

前言 本章节开始介绍数据访问方面的相关知识点。对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的。目前,绝大部分公司都选择MyBatis框架作为底层数...

oKong
今天
13
0
win10 上安装解压版mysql

1.效果 2. 下载MySQL 压缩版 下载地址: https://downloads.mysql.com/archives/community/ 3. 配置 3.1 将下载的文件解压到合适的位置 我最终将myql文件 放在:D:\develop\mysql 最终放的位...

Lucky_Me
今天
2
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

问题终结者
今天
2
0
expect脚本同步文件expect脚本指定host和要同步的文件 构建文件分发系统批量远程执行命令

expect脚本同步文件 在一台机器上把文件同步到多台机器上 自动同步文件 vim 4.expect [root@yong-01 sbin]# vim 4.expect#!/usr/bin/expectset passwd "20655739"spawn rsync -av ro...

lyy549745
今天
1
0
36.rsync下 日志 screen

10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具 10.32/10.33 rsync通过服务同步: rsync还可以通过服务的方式同步。那需要开启一个服务,他的架构是cs架构,客户端服务...

王鑫linux
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部