定义
连接池中连接数同一时间被用光 当超过指定时间时 还未等到连接 就会报以上错误
//报错信息
Could not get JDBC Connection; nested exception is com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 20, active 5, maxActive 20
排查
开启以下配置 排查异常代码
# 开启超时自动回收连接
spring.datasource.removeAbandoned=true
# 设置自动回收连接的超时时间 秒
spring.datasource.removeAbandonedTimeout=180
# 打印回收连接时的错误日志
spring.datasource.logAbandoned=true
解决
该异常多出现在事务执行时间过高,多观察关于事务的代码,有关于事务处的代码不亦处理过多的逻辑
数据库连接池超时与事务优化
当数据库连接池中的连接被用光且超过指定等待时间未归还时,会出现GetConnectionTimeoutException。通过配置spring.datasource.removeAbandoned=true,spring.datasource.removeAbandonedTimeout=180和spring.datasource.logAbandoned=true可以启用超时连接回收。问题可能源于事务执行时间过长,建议检查并优化事务处理代码。
1525

被折叠的 条评论
为什么被折叠?



