数据库连接池hikari异常断开解决思路(整理的网上的资料)

  数据库连接池连接超时异常断开的问题。提出以下解决思路

  1.延长maxLifetime大小 

  注: maxLifetime 设置一个connection在连接池中的存活时间 默认30分钟 ,如果设置为0,表示存活时间无限大。如果不等于0且小于30秒则会被重置回30分钟。

  2.更改配置 allowPoolSuspension: true  

                     registerMbeans: true

效果 当池被暂停时,调用 getConnection()将不会超时,并将一直保持到池恢复为止。SQL执行都会被保留下来,软驱除现有连接之后,一直保持到池恢复Resume时,这些SQL依然会继续执行,也就是说并不会丢数据。缺点长期阻塞该参数存在让服务卡死的风险。

附 参数涉及到的相关代码

// 池中连接最长生命周期 设置最少3000
 if (maxLifetime != 0 && maxLifetime < SECONDS.toMillis(30)) {
    LOGGER.warn("{} - maxLifetime is less than 30000ms, setting to default {}ms.", poolName, MAX_LIFETIME);
    maxLifetime = MAX_LIFETIME;
 }
//连接允许在池中闲置的最长时间  要小于maxLifetime 池中连接最长生命周期
 if (idleTimeout + SECONDS.toMillis(1) > maxLifetime && maxLifetime > 0) {
    LOGGER.warn("{} - idleTimeout is close to or more than maxLifetime, disabling it.", po
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值