异常信息:

java.lang.Exception: Apparent connection leak detected
at com.sq.driver.datasource.HikariDatasourceWrap.initDatasource(HikariDatasourceWrap.java:73)
at com.sq.config.cache.BaseNodeResource$Builder.lambda$withFactory$2(BaseNodeResource.java:280)
at com.sq.config.cache.BaseNodeResource.get(BaseNodeResource.java:129)
at com.sq.driver.datasource.HikariDatasourceWrap.warmup(HikariDatasourceWrap.java:171)
at com.sq.pool.core.spring.WarmupProcess.onApplicationEvent(WarmupProcess.java:34)
at com.sq.pool.core.spring.WarmupProcess.onApplicationEvent(WarmupProcess.java:20)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:163)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:136)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:381)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:335)
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:855)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:541)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4853)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)

数据源配置:

<?xml version="1.0" encoding="utf-8"?>

<config>
<value>{"name":"pool","driverClassName":"com.mysql.jdbc.Driver", "jdbcUrl":"jdbc:mysql://************************************:8888/dispatcher?zeroDateTimeBehavior=convertToNull&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;connectTimeout=1000&amp;socketTimeout=15000", "username":"*******", "password": "*************", "maximumPoolSize":20, "minimumIdle":20, "connectionTimeout":3000, "leakDetectionThreshold":10000}</value>
</config>

原理介绍:

leakDetectionThreshold 设定了连接泄露阀值10s,即当从连接池里取出连接超过10s不归还时,会warn  Apparent connection leak detected

HikariPool#getConnection

ProxyLeakTask#ProxyLeakTask

在连接归还或被踢除时,会清除此调度任务,详见ProxyConnection。即在10s内归还连接,会清除调度任务。超过10s调度任务执行。

清除调度任务时,如果已经超过调度时间,会LOGGER.info("Previously reported leaked connection {} was returned to the pool (unleaked)", connectionName);。详见ProxyLeakTask#cancel。

解决方案:

只借不还,浪费资源。有借须有还,将connection归还。

HikariDatasourceWrap#initDatasource

总结:

    这个case中最大的亮点是。Hikari warn日志中详细的打印出,存在连接泄露的代码行数,异常信息非常直白易懂。实现逻辑详见 ProxyLeakTask#ProxyLeakTask    ProxyLeakTask#run。优秀的代码设计+不错的性能,也难怪SpringBoot2.0起默认数据库连接池从TomcatPool换到了「HikariCP」。

1

Apparent connection leak detected相关推荐

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

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

  2. uniapp MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 upgrade listeners

    uniapp 出现这个红色提示语 (node:39268) MaxListenersExceededWarning: Possible EventEmitter memory leak detecte ...

  3. hikaril连接sql2000_hikari连接池解析(版本:HikariCP-2.5.1.jar)

    maxLifetime参数 maxLifetime参数必须小于数据库的time_wait,默认是1800000,即30分钟.如果设置为0,表示存活时间无限大.如果不等于0且小于30秒则会被重置回30分 ...

  4. HikariDataSource

    DataSourceConfiguration 配置类,springBoot默认采用HikariDataSource /*** Hikari DataSource configuration.*/@C ...

  5. TongWeb8数据源相关问题

    问题一:数据源连接不足 当TongWeb数据源连接用完时,除了监控中看到连接占用高以外,日志中会有如下提示信息. 2023-02-14 10:24:43 [WARN] - com.tongweb.we ...

  6. UGA内存泄露问题 ORA-600 [729] Space Leak Errors [ID 403584.1]

    1  根本原因分析 告警记录的时间点是01/04/2011 06:13:36 ,属于DB_Server1A 节点,查找对应数据库节点,这个时间点的alert日志,日志如下: Fri Apr 01 06 ...

  7. 安装intel PRO/wireless 2200BG Network connection 无线网卡驱动

    作者: Maril  出自: http://www.linuxdiyf.com 首先需要下载Intel® PRO/Wireless 2200BG Driver Firmware,地址: http:// ...

  8. Alamofire源码解读系列(七)之网络监控(NetworkReachabilityManager)

    Alamofire源码解读系列(七)之网络监控(NetworkReachabilityManager) 本篇主要讲解iOS开发中的网络监控 前言 在开发中,有时候我们需要获取这些信息: 手机是否联网 ...

  9. Weblogic10.3.6升级2021年10月补丁p33172858_1036_Generic.zip实践

    操作系统:Windows\Linux JDK版本:jdk1.6 Weblogic版本:10.3.6.0  补丁:p33172858_1036_Generic.zip 说明:Windows升级操作与Li ...

  10. Primavera P6 EPPM 19.12.X Patch/Update(补丁/更新)

    目录 Patch 19.12.18.0 Patch 19.12.17.0 Patch 19.12.16.0 Patch 19.12.15.0 Patch 19.12.14.0 Patch 19.12. ...

最新文章

  1. c2064 项不会计算为接受0个参数的函数_【JS必知必会】高阶函数详解与实战
  2. aaaaaaaaaaa
  3. java Random类详解
  4. Kali Linux 安全渗透教程第一更
  5. 【Lucene4.8教程之四】分析
  6. Parent Equipment 和IBASE relationship创建时的检查逻辑
  7. Boltzmann Machine 入门(2)
  8. python股票网格交易法详解_干货 | 浅谈网格交易法
  9. 深入学习用Go编写HTTP服务器
  10. uva 10816 Travel in Desert(简单的好题~两种方法)
  11. 地理必修一三大类岩石_90后地理老师4天收700封情书!这波操作,绝了……
  12. Apache Flink Meetup ·上海站精彩回顾(附PPT下载)
  13. Linux网络操作系统及应用教程(项目式)项目四
  14. 算法程序-通过log重现计算过程
  15. VLAN trunk实验
  16. 【gfs】google file system 之重点剖析
  17. 将MongoDB安装在移动硬盘
  18. 这几年被分布式坑惨了,曝光十大坑
  19. 大象装企营销:16个月,血亏300万,投资人撤资,公司倒闭
  20. 疫情后推动出行即服务

热门文章

  1. 删除单向链表的最后一个节点
  2. 剑指Offer面试题11(Java版):数值的整数次方
  3. angular 万年历_jQuery实现的简单日历组件定义与用法示例
  4. 【现代密码学原理】——消息认证码(学习笔记)
  5. 双硬盘双系统(windows10+deepin)
  6. linux ps1 主机名 ip,Bash Shell PS1: 自定义你的linux提示符十例
  7. Glassfish的安装与使用
  8. 半导体储存器例题小试--十安辰
  9. ip icmp flood 等 常见的攻击
  10. 企业快速构建可落地的IT服务管理体系的五大关键点