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

以上所述就是本文的全部内容了,希望大家能够喜欢。

mysql 8小时问题_Mysql经典的“8小时问题”相关推荐

  1. mysql把表里是时间加8小时_mysql经典的8小时问题-wait_timeout

    前段时间 现网突然频繁报出 连接不上数据库,偶滴的妖孽,其他地方都是用mysql,也没遇到这个问题呀. java.io.EOFExceptionat at com.mysql.jdbc.MysqlIO ...

  2. mysql模拟题三_mysql经典45题(3刷)

    Mysql 经典练习题 我使用的Mysql版本是5.7.27-log,答案可能会因版本会有少许出入. 一.数据源准备及说明: 1.1.数据字段说明: 1.学生表 Student(SId,Sname,S ...

  3. mysql 插入学生信息_MySQL经典50题-1-创建数据表和插入数据

    MySQL经典50题-1-创建数据表和插入数据 本文的整理和学习来自CSDN的一位博主,接下来的一个系列将是自己的学习和整理内容,提升MySQL. 同时解法会对网上的版本进行整理和综合,尽可能有多种答 ...

  4. mysql日期加天_MySql日期加天数,小时,分钟...得到新的时间

    在当前的日期上加三天,天数随便改: SELECT date_add(CURRENT_DATE(), interval 3 day); 在指定的日期上加三天: SELECT date_add('2014 ...

  5. mysql查询语句题目_MySQL经典练习题及答案,常用SQL语句练习50题

    --1.查询"01"课程比"02"课程成绩高的学生的信息及课程分数 select a.* ,b.s_score as 01_score,c.s_score as ...

  6. mysql练习题及答案_MySQL经典练习题及答案,常用SQL语句练习50题

    #--插入学生表测试数据 #('01' , '赵雷' , '1990-01-01' , '男') insert into Student values('01' , '赵雷' , '1990-01-0 ...

  7. 数据库查询时间相差8小时解决_MySQL插入时间差八小时问题的解决方法

    解决MySQL插入时间差八小时问题 一般 jdbc url中 需要添加几个参数 , 大多数博客给的教程都是 useSSL=false&useUnicode=true&character ...

  8. mysql 经典入门教程_MySQL 经典入门教程

    MySQL 经典入门教程 1 定义 数据库中的表:一行叫一条记录.每一列叫一个属性,或一个字段. 主键:表中的某个特殊字段,具有唯一的确定的值,可以根据该字段唯一的确定一条记录 外键:表中的某个字段的 ...

  9. mysql连接超过8小时错误_mysql超过8小时数据库断掉连接的简单解决办法

    应用程序和数据库建立连接,如果超过8小时应用程序不去访问数据库,数据库就断掉连接 .这时再次访问就会抛出异常,如下所示: java.io.EOFException at com.mysql.jdbc. ...

最新文章

  1. Ambari在离线环境中安装Hadoop集群
  2. Redis实现分布式锁的深入探究
  3. Analytic Functions 分析函数(rank over)
  4. 8080端口被占用的解决方案(其它端口同理)
  5. python+selenium自动化测试——浏览器驱动
  6. boost::filesystem::detail::possible_large_file_size_support
  7. OS- -I/O之盘和时钟
  8. 用盛金公式求解一元三次方程
  9. Web前端开发:SQL Jsp小项目(一)
  10. python copy与deepcopy (拷贝与深拷贝)
  11. oracle的sga怎么设置,oracle sga设置
  12. java中的getnumber怎么用_java安全编码指南之:Number操作
  13. 处理器性能越来越强,但电脑为什么没有手机流畅?
  14. 《设计模式详解》行为型模式 - 状态模式
  15. Proteus8超硬核安装教程,按不上我请你吃饭
  16. 洛谷P1789 【Mc生存】插火把
  17. 教你如何利用灰度图透明效果制作隐藏图片.Part2
  18. dell10代cpu装linux,戴尔10代cpu装win7系统及bios设置|戴尔十代cpu台式机装win7
  19. 【资讯分享】云帆加速将P2P技术免费,该服务量级已突破1.5T
  20. ubuntu 彻底删除php7,Ubuntu彻底删除PHP7.0的方法

热门文章

  1. cant find module express
  2. shell 脚本编程之for语句、if语句(2 )
  3. 从servlet中获取spring的WebApplicationContext
  4. matlab simulink笔记02——延迟模块delay与单位延迟模块unit delay
  5. win10环境下如何给visual studio 2013永久配置opencv3.1.0环境
  6. python 使用小知识总结(持续更新ing)
  7. C++的4种类型转换关键字及其特点
  8. python打包工具报错_python打包生成exe报错
  9. 3. 什么是icmp?icmp与ip的关系_你知道如何跟女生,确定恋人关系吗?
  10. zip:命令行下zip压缩/解压缩