• com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 60000, active 20, maxActive 20


    目录

    异常现象

    异常描述

    解决方案

    注意事项


    异常现象

    com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 60000, active 20, maxActive 20, creating 0

    异常描述

    从异常现象中 com.alibaba.druid.pool.GetConnectionTimeoutException 可以看到错误信息提示是阿里巴巴Druid数据库连接池数据库获取连接超时异常原因,具体为 active 20,活动的连接数为20, maxActive 20, 最大的连接数为20, 意思很明显,活动的连接数与最大连接数相同,连接用完了,在等待(我写的配置是60000毫秒即60秒)新的连接,却没有新连接可用,然后超时了。

    解决方案

    在配置中添加如下Druid的配置即可:(我的是properties配置,所以我选择的是第一种)

    1、properties配置文件中:

    #druid recycle Druid的连接回收机制
    #超过时间限制是否回收
    spring.datasource.druid.removeAbandoned = true
    #超时时间;单位为秒。180秒=3分钟
    spring.datasource.druid.removeAbandonedTimeout = 180
    #关闭abanded连接时输出错误日志
    spring.datasource.druid.logAbandoned = true

    2、xml配置文件中:

    <!-- 超过时间限制是否回收 -->  
    <property name="removeAbandoned" value="true" />  
    <!-- 超时时间;单位为秒。180秒=3分钟 -->  
    <property name="removeAbandonedTimeout" value="180" />  
    <!-- 关闭abanded连接时输出错误日志 -->  
    <property name="logAbandoned" value="true" />

    添加如上配置还可以很清楚地看到是在哪里打开的连接未关闭一直在占有。但是会影响程序的性能。

    注意事项

    此配置项会影响性能,只在排查的时候打开,系统运行时最好关闭。 

  • 相关阅读:
    海选女主角
    发工资咯:)
    绝对值排序
    数列有序!
    母牛的故事
    一文看懂外汇风险准备金率调整为 20%的含义
    1080i减少带宽
    为什么要采用隔行扫描?
    720P、1080P、4K是什么意思?
    VBR一次編碼 v.s 二次編碼(VBR 1-pass vs 2-pass)
  • 原文地址:https://www.cnblogs.com/no8g/p/13415546.html
Copyright © 2020-2023  润新知