首页 > 数据库 >druid使用时,发现数据库空闲太久自动关闭连接导致异常的问题

druid使用时,发现数据库空闲太久自动关闭连接导致异常的问题

时间:2023-05-17 10:46:05浏览次数:52  
标签:minEvictableIdleTimeMillis 数据库 druid 回收 连接池 连接 空闲

系统启动后,创建了连接池。那如果后续超过数据库配置的最大连接时间,就会单方面的断开连接。

而此时,druid并不知道,所以,在有请求访问进行数据操作的时候,使用到那个已断开的连接,就会报错。

 

解决方式是:

回收连接池中的链接

实例:

timeBetweenEvictionRunsMillis: 10000
minEvictableIdleTimeMillis: 30000

访问流量大的时候,连接池中的连接数是maxActive,但是当流量下来后,需要回收部分空闲的链接,最终让连接池中保留至少minIdle个链接。

回收的过程就需要定时对连接进行检查,判断连接是否应该回收。上面的配置就是每隔timeBetweenEvictionRunsMillis: 10000ms对连接池的连接做一次检查,如果有连接空闲时间超过minEvictableIdleTimeMillis: 30000ms就回收该链接(连接保持空闲而不被驱逐的最小时间)。

 

注意:我当前使用的druid是:druid-spring-boot-starter.1.2.6.jar,minEvictableIdleTimeMillis需要大于30s

 

有同学可能不明白,为什么这样配置就好了。

这里只是说明会回收连接,还有一个隐形的东西没说:回收后,当连接数小于minIdle的时候,会自动创建新的连接,然后放到连接池里,这样连接池的连接就会尽量保证可用。

 

 

标签:minEvictableIdleTimeMillis,数据库,druid,回收,连接池,连接,空闲
From: https://www.cnblogs.com/zkj1204/p/17407813.html

相关文章

  • Laravel5.8-添加、更新、删除数据库字段
    在设计表的时候,往往不能一次性到位,很多的时候会根据需求重新补充缺少的字段   一、添加字段1phpartisanmake:migrationadd_testmore_add_siteid--table=testmore2phpartisanmake:migration#固定格式3add_testmore_add_siteid#对应的生成文件名称,在其中加入......
  • 数据库中表名大小写问题
    一个sql整了半天排错,发现是表名大小写不一样导致的,所以记录下查了下资料,mysql的表名是根据存储在操作系统上的文件的名称来判断的。如果操作系统文件名不区分大小写,例如windows,那么对应的表名就不区大小写。如果操作系统文件名区分大小写,例如linux,那么对应的表名就区分大小......
  • kettle 在线服务 carte 数据 资源库默认大写 数据库使用默认端口
    连接已存在资源库原来是表名小写直接设置mysql表名小写vim/etc/mysql/my.cnf#值为0表示不进行转换,值为2表示区分大小写,并且会将表名存储为区分大小写的形式lower_case_table_names=1遇到资源端口3307kettle确是3306只修改了r_databse表的host、port、use......
  • 告诉你数据库的稳定性都在测试什么
    中国信通院给定的稳定性测试的思想如下:保障分布式数据库系统的稳定运行,就先要有测试其稳定性的工具和方法。混沌测试是一种新兴的对分布式系统的稳定性进行测试的技术。其主要思想是测试人员主动对系统引入故障,例如单个或多个节点的线程故障、网络故障、CPU高负载、内存占用满、硬......
  • SQL优化改写案例14(OB数据库SQL优化,把你的脑袋当成CBO)
    OB一哥们找我优化条SQL,反馈在OceanBase存储过程执行时间很慢,需要626秒才能出结果,安排。--原SQL:INSERTINTOinsurance_stat_sx(id,stat_date,cal_num,underwrite_num,veh_num,effect_num,effect_money,unit_code,life_......
  • 实验三 Web数据库程序设计
     实  验  报  告  课程名称:  WEB应用开发技术  任课教师:   雷 宇         实验日期: 2023.5.16          班   级:     信2105-2班                                    ......
  • python学生管理系统笔记(+增删改查,但不存入数据库或文件中)
    原本的基础上+增删改查,但不存入数据库或文件中,就是数据只在一次运行的页面中进行增删改查,但是重新运行不会有之前的数据,因为没有更新到json或者数据库中。1.LoginPage.pyimporttkinterastkfromtkinterimportmessageboxfromdbimportdbfromMainPageimportMainPage......
  • 2023年5月中国数据库排行榜:OTO组合回归育新机,华为高斯蓄势待发展雄心
    路漫漫其修远兮,吾将上下而求索。 2023年5月的 墨天轮中国数据库流行度排行 火热出炉,本月共有262个数据库参与排名。本月排行榜前十变动较大,可以用一句话概括为:openGauss立足创新夺探花;华为云GaussDB云上之争成赢家;其余数据库自强不息居原位。从2023年5月起,排行榜月度解读文......
  • 保证数据库和缓存数据一致性
    1.修改数据接口开启事务2.修改数据接口中先修改DB,然后删除redis缓存3.如果删除redis抛异常,就回滚事务4.如果删除redis,redis没有返回结果,不确定是不是删除成功了,抛出异常,回滚事务5.后台界面可以查看数据库的值与缓存的值是否一致,界面有查看,修改数据的功能......
  • .NET6项目连接数据库方式方法
    前言接上一篇Linux系统下创建dotnet项目,这一篇我们聊聊.NET6环境下dotnet项目连接数据库的方式方法,包括数据库字符串该如何配置。看了很多博主写的文章,连接数据库字符串配置的方式和位置五花八门,这篇文章给大家介绍一下连接数据库字符串的配置方式方法,顺便介绍下一个新创建的dotn......