java.sql.SQLException: connection closed

2023-09-09 12:16:41.176 Druid-ConnectionPool-Destroy-181260145 ERROR c.a.d.p.DruidDataSource(3078) - abandon connection, owner thread: http-nio-8005-exec-10, connected at : 1694232698110, open stackTrace

at java.lang.Thread.getStackTrace(Thread.java:1559)

2023-09-09 12:16:41.180 Druid-ConnectionPool-Destroy-181260145 ERROR c.a.d.p.DruidDataSource(3078) - abandon connection, owner thread: http-nio-8005-exec-1, connected at : 1694232696002, open stackTrace

at java.lang.Thread.getStackTrace(Thread.java:1559)

2023-09-09 12:17:10.105 http-nio-8005-exec-1 ERROR

2023-09-09 12:17:10.107 http-nio-8005-exec-1 ERROR

2023-09-09 12:17:11.051 http-nio-8005-exec-10

druid配置:

removeAbandoned: true

removeAbandonedTimeout: 300

从被获取到开始计时,如果在removeAbandonedTimeout规定的时间内,还没有关闭的话,就自动进行移除处理。druid的开发者增加这个功能的目的是为了自动移除程序员编程过程中忘记close的connection。而如何断定程序员忘记关闭连接,是通过时间来界定的,removeAbandonedTimeout的默认值是5分钟,我看很多产品都把这个值设置为10分钟,也就是说,如果连接从被获取到被关闭超过10分钟,就会被自动移除。

连接因长SQL一直没有执行完,占用超过removeAbandonedTimeout时被移除,然而在移除时报错了,但因移除报错,此连接还是存在连接池,而实际连接又关闭了,后续再继续拿到的时候就报sqlException:connection closed;

参考:

https://www.modb.pro/db/171346

Druid连接池 报错:abandon connection原因分析_wtopps的博客-CSDN博客

方案一:removeAbandoned设置为false或removeAbandonedTimeout调大;

方案二:在数据库的url链接中加&queryTimeout=75

相关推荐
a1117761 分钟前
“黑夜流星“个人引导页 网页html
java·前端·html
砚底藏山河8 分钟前
沪深A股:如何获取基金持股数据
java·python·数据分析·maven
.千余8 分钟前
【C++】模板进阶全解:非类型参数|全特化|偏特化|分离编译完全指南
开发语言·c++·笔记·学习·其他
代码改善世界15 分钟前
【C++进阶】C++11:列表初始化、右值引用与移动语义、完美转发全解析
java·开发语言·c++
AIGS00123 分钟前
JBoltAI V4.5企业智能体平台:技术架构拆解
java·人工智能·ai大模型应用
scx_link26 分钟前
通过git bash在本地创建分支,并推送到远程仓库中
开发语言·git·bash
一勺菠萝丶33 分钟前
Maven SNAPSHOT 父 POM 无法解析问题排查
java·maven
GZ同学34 分钟前
单双变量Ripley’s K函数 R 语言实现
开发语言·r语言
Channing Lewis35 分钟前
PHP 解析 Excel 的那些坑:一次“行号错位”引发的数据丢失
开发语言·php·excel
小小龙学IT42 分钟前
Apache Airflow 2.x 深度指南:用 Python 编排一切的现代化工作流引擎
开发语言·python·apache