记一次生产数据库连接超时问题排查

背景

Spring Boot 2.0.8 + Hikari + Oracle 

历史项目,很久没维护了,生产上正常运行两年有余,双活架构,突然有一天其中一台后端服务器数据库连接池报错:

SQL Error:0,SQLState:08006

SQL Error:17002,SQLState:08006

JDBCConnectionException:Unable to acquire JDBC Connection

初步排查

初步认为是连接池超时时间,或者某个参数出问题了,由于生产业务量增加,导致一直获取不到数据库连接导致超时了

有一点疑惑的是,hikari默认max-lifetime应该是1800000(30分钟),但后台日志中除了这个数字,还有9000000ms

第一次在修改最大连接池数量(maximum-pool-size)与探活周期(keepalive-time)等参数后重新部署,但是正常了一天后,又再次报错了

其中另一点疑惑是,另一台服务器上的应用一直是正常运行的

问题定位

在一次次修改参数,优化代码后,问题依然存在,考虑到可能不是应用端出现的问题,排查数据库侧的超时时间等参数,也均属于正常范围

后续在询问运维老师后了解到,应用到数据库之间存在防火墙,网络虽然通,但是并没有开通长链接,在申请开通长链接后,问题暂时解决(需要继续观察)

 

posted @   糖醋小灰  阅读(73)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示