一次故障分析:HikariPool-1 - Connection is not available
最近在生产中遇到一个问题,解决起来费了一番功夫,查询了很多其他人的文章。在写出来,希望能帮助到其他人。
背景:
程序是基于JDK1.8x,SpringBoot2.x 开发的。连接的是Oracle 11G数据库。运行环境是通过PaaS平台,部署到云上。SpringBoot2.x 内置的就是Hakari 连接池。
故障现象:
1,过一段时间,应用会报告无法连接数据库库了。
hold请求之后,会抛出异常信息,关键内容是:HikariPool-1 - Connection is not available,request timed out after 954466ms.
2,另外一个特征是:基本上每隔一个小时左右,会有如下日志:HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=54s566ms151µs86ns)
问题分析过程:
根据这些关键字,我检索了大量文章,各种说法都有。其中,下面这篇描述的现象是最接近的。
https://github.com/brettwooldridge/HikariCP/issues/679
还有这个:
MuleSoft Help Center
也有这篇:
Spring Boot 中使用 Hikari,给我整不会了 - 掘金
都没有解决我的问题。
因为我用的基本上都是Hikari的缺省配置。Hikari的大量配置项,都不用设置,缺省配置够用。
一开始以为是maxLifetime这个值的设置和数据库本身的设置有问题。比如前者比后者大,导致pool里面的连接都坏掉了。但是,调整了这个值还是不对。
故障真正原因:
持续了几天都没有解决。后来在一次debug代码的时候,发现连接池启动的时候,总报一个提示:Driver does not support get/set network timeout for connections
之前一直都有这个提示信息,由于只是一个普通的提示,而且在单元测试的时候也不影响数据库连接使用,所以一直没有当回事。
结合这个,我突然意识到,可能是数据库Driver的版本问题。查看pom文件,果然用的是jdbc6。
修改pom文件:改为:
<dependency><groupId>com.oracle</groupId><artifactId>ojdbc8</artifactId><version>12.2.0.1</version></dependency>
问题解决!
感想
别人遇到问题,现象可能和你一样,但原因可能是不一样的。
一次故障分析:HikariPool-1 - Connection is not available相关推荐
- 二月技术通讯.pdf丨核心数据库一波三折异常重启分析
每月关注:55 页 干货,汇总一个月数据库行业热点事件.新的产品特性,包括重要数据库产品发布.警报.更新.新版本.补丁等. 亲爱的读者朋友: 为了及时共享行业案例,通知共性问题,达成共享和提前预防,以 ...
- HikariPool 连接池问题
前言:今天在一个项目运行的时候发现一个很奇怪的问题,当我有一段时间无操作之后再进行插入操作的话,就会出现HikariPool相关的报错,在此记录一下 问题 2022-02-20 13:14:04.17 ...
- hikaripool连接保持_springboot2的hikari数据库连接池默认配置
序 Spring-Boot-2.0.0-M1版本将默认的数据库连接池从tomcat jdbc pool改为了hikari,这里主要研究下hikari的默认配置 spring-configuration ...
- could not create connection to database server.] with root cause
场景 SpringBoot项目运行后提示: 详细提示如下: ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: ...
- oracle故障一例,工作中遇到的oracle故障分析和处理一例
工作中遇到的oracle故障分析和处理一例以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 案例类别 VAS网络 系统类型 ...
- Unable to open JDBC Connection for DDL execution
Unable to open JDBC Connection for DDL execution problem springBoot jar包打好包之后,服务器运行发现如下报错: [Persiste ...
- nacos连接mysql出现:Could not create connection to database server. Attempted reconnect 3 times. Giving u
nacos连接mysql出错 今天在学习nacos的时候,在从nacos内嵌数据derby切换到mysql的时候,出现一个错误,特意记一下. org.springframework.jdbc.Cann ...
- Hikari连接池——java.lang.Exception: Apparent connection leak detected
Hikari连接池--java.lang.Exception: Apparent connection leak detected 问题分析 总结 问题分析 首先,先看报错: java.lang.Ex ...
- spring-boot 2.5.6 问题:WARN: This connection is using TLSv1.1
参考: Springboot, link failure.SSL peer shut down incorrectly.Unsupported record version Unknown-0.0问题 ...
最新文章
- SAP SD 定价过程的16个字段的作用说明
- VTK:BackgroundImage背景图用法实战
- s5-13 RIP 为什么会 衰败
- 「递归」第9集 | 我在腾讯做研究
- log日志java web_Javaweb项目中使用Log4j记录日志
- java上传文件的二进制_文件的上传:二进制文件的上传;
- Android字节码ASM插桩
- 【解决方法】Windows7 任务计划程序 “任务计划程序服务不可用。任务计划程序将尝试重新与其建立连接。”
- 装修纪~~从装修中体味人生
- 怎样对生产环境10T RAC新增Adg 不对现有主库产生任何负载,不占用网络带宽?
- SmartBI入门(一)介绍和安装
- 算法分析:大O符号/大Ω符号/大Θ符号/小o符号/小w符号
- 正则匹配里面的(.*?)
- 用phpcms切换中英文网页的方法(不用解析二级域名)、phpcms完成pc和手机端切换(同一域名)...
- 浏览器内核和Standards模式与Quirks模式
- 2022 CSP-J1 CSP-S1 第1轮 初赛 攻略 总结 心得体会 注意事项 游记
- 可以用php做出一个圆锥吗,用H5制作水滴特效教程
- github上传自己的代码
- “有钱了”的理想汽车,能否拿下自动驾驶赛道入场券?
- Spark系列之SparkSubmit提交任务到YARN