文档章节

Mysql“8小时问题”

村东邹师傅
 村东邹师傅
发布于 2015/04/24 11:25
字数 402
阅读 206
收藏 7

 假设你的数据库是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配置方式。

© 著作权归作者所有

共有 人打赏支持
上一篇: git学习笔记
下一篇: Impala与Hive的比较
村东邹师傅
粉丝 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
5.4K
2
解决MySQL 5数据库连接超时问题

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

Jesons
2015/01/12
0
2

没有更多内容

加载失败,请刷新页面

加载更多

【Flutter教程】从零构建电商应用(一)

在这个系列中,我们将学习如何使用google的移动开发框架flutter创建一个电商应用。本文是flutter框架系列教程的第一部分,将学习如何安装Flutter开发环境并创建第一个Flutter应用,并学习Flu...

笔阁
14分钟前
1
0
什么是以太坊DAO?(三)

Decentralized Autonomous Organization,简称DAO,以太坊中重要的概念。一般翻译为去中心化的自治组织。 投票支付合约的所有费用和行动需要时间,并要求用户始终保持活跃,知情和专注。另一...

geek12345
16分钟前
0
0
一个本科学生对Linux的认知

一个本科学生对Linux的认知 我是一名大三的普通一本大学的软件工程的一名学生,学校开设了一些关于系统开发的课程,纸上得来终觉浅,学校的课程课时较短,想要在56个课时之内学会一些公司需要...

linuxCool
58分钟前
2
0
CentOS 安装Tomcat

Tomcat 介绍 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。 Java 程序写的网站用tomcat+jdk来运...

野雪球
今天
1
0
OSChina 周四乱弹 —— 每天都迟到是种什么样的体验

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @开源中国首席机器人 :《Too Good At Goodbyes (Acoustic) - Sam Smith - 单曲》 《Too Good At Goodbyes (Acoustic) - Sam Smith - 单曲》 ...

小小编辑
今天
709
12

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部