最近在生产中遇到一个问题,解决起来费了一番功夫,查询了很多其他人的文章。在写出来,希望能帮助到其他人。

背景:

程序是基于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相关推荐

  1. 二月技术通讯.pdf丨核心数据库一波三折异常重启分析

    每月关注:55 页 干货,汇总一个月数据库行业热点事件.新的产品特性,包括重要数据库产品发布.警报.更新.新版本.补丁等. 亲爱的读者朋友: 为了及时共享行业案例,通知共性问题,达成共享和提前预防,以 ...

  2. HikariPool 连接池问题

    前言:今天在一个项目运行的时候发现一个很奇怪的问题,当我有一段时间无操作之后再进行插入操作的话,就会出现HikariPool相关的报错,在此记录一下 问题 2022-02-20 13:14:04.17 ...

  3. hikaripool连接保持_springboot2的hikari数据库连接池默认配置

    序 Spring-Boot-2.0.0-M1版本将默认的数据库连接池从tomcat jdbc pool改为了hikari,这里主要研究下hikari的默认配置 spring-configuration ...

  4. could not create connection to database server.] with root cause

    场景 SpringBoot项目运行后提示: 详细提示如下: ### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: ...

  5. oracle故障一例,工作中遇到的oracle故障分析和处理一例

    工作中遇到的oracle故障分析和处理一例以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 案例类别 VAS网络 系统类型 ...

  6. Unable to open JDBC Connection for DDL execution

    Unable to open JDBC Connection for DDL execution problem springBoot jar包打好包之后,服务器运行发现如下报错: [Persiste ...

  7. 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 ...

  8. Hikari连接池——java.lang.Exception: Apparent connection leak detected

    Hikari连接池--java.lang.Exception: Apparent connection leak detected 问题分析 总结 问题分析 首先,先看报错: java.lang.Ex ...

  9. 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问题 ...

最新文章

  1. SAP SD 定价过程的16个字段的作用说明
  2. VTK:BackgroundImage背景图用法实战
  3. s5-13 RIP 为什么会 衰败
  4. 「递归」第9集 | 我在腾讯做研究
  5. log日志java web_Javaweb项目中使用Log4j记录日志
  6. java上传文件的二进制_文件的上传:二进制文件的上传;
  7. Android字节码ASM插桩
  8. 【解决方法】Windows7 任务计划程序 “任务计划程序服务不可用。任务计划程序将尝试重新与其建立连接。”
  9. 装修纪~~从装修中体味人生
  10. 怎样对生产环境10T RAC新增Adg 不对现有主库产生任何负载,不占用网络带宽?
  11. SmartBI入门(一)介绍和安装
  12. 算法分析:大O符号/大Ω符号/大Θ符号/小o符号/小w符号
  13. 正则匹配里面的(.*?)
  14. 用phpcms切换中英文网页的方法(不用解析二级域名)、phpcms完成pc和手机端切换(同一域名)...
  15. 浏览器内核和Standards模式与Quirks模式
  16. 2022 CSP-J1 CSP-S1 第1轮 初赛 攻略 总结 心得体会 注意事项 游记
  17. 可以用php做出一个圆锥吗,用H5制作水滴特效教程
  18. github上传自己的代码
  19. “有钱了”的理想汽车,能否拿下自动驾驶赛道入场券?
  20. Spark系列之SparkSubmit提交任务到YARN

热门文章

  1. matlab读取ug,matlab文件读取相关操作
  2. js根据ip地址获取省份城市的方法
  3. stacking的详细代码教程
  4. Django框架--路由分配系统
  5. 6 Drools整合Springboot
  6. 快速幂 算法学习笔记
  7. 美国的国债钟网站的网址是多少?
  8. vim列操作/块操作
  9. 四类异常检测算法综述:Isolation Forest、LOF、PCA及DAGMM
  10. Idea连接数据库,并生成pojo