Apparent connection leak detected
异常信息:
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&useUnicode=true&characterEncoding=UTF-8&connectTimeout=1000&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相关推荐
- Hikari连接池——java.lang.Exception: Apparent connection leak detected
Hikari连接池--java.lang.Exception: Apparent connection leak detected 问题分析 总结 问题分析 首先,先看报错: java.lang.Ex ...
- uniapp MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 upgrade listeners
uniapp 出现这个红色提示语 (node:39268) MaxListenersExceededWarning: Possible EventEmitter memory leak detecte ...
- hikaril连接sql2000_hikari连接池解析(版本:HikariCP-2.5.1.jar)
maxLifetime参数 maxLifetime参数必须小于数据库的time_wait,默认是1800000,即30分钟.如果设置为0,表示存活时间无限大.如果不等于0且小于30秒则会被重置回30分 ...
- HikariDataSource
DataSourceConfiguration 配置类,springBoot默认采用HikariDataSource /*** Hikari DataSource configuration.*/@C ...
- TongWeb8数据源相关问题
问题一:数据源连接不足 当TongWeb数据源连接用完时,除了监控中看到连接占用高以外,日志中会有如下提示信息. 2023-02-14 10:24:43 [WARN] - com.tongweb.we ...
- UGA内存泄露问题 ORA-600 [729] Space Leak Errors [ID 403584.1]
1 根本原因分析 告警记录的时间点是01/04/2011 06:13:36 ,属于DB_Server1A 节点,查找对应数据库节点,这个时间点的alert日志,日志如下: Fri Apr 01 06 ...
- 安装intel PRO/wireless 2200BG Network connection 无线网卡驱动
作者: Maril 出自: http://www.linuxdiyf.com 首先需要下载Intel® PRO/Wireless 2200BG Driver Firmware,地址: http:// ...
- Alamofire源码解读系列(七)之网络监控(NetworkReachabilityManager)
Alamofire源码解读系列(七)之网络监控(NetworkReachabilityManager) 本篇主要讲解iOS开发中的网络监控 前言 在开发中,有时候我们需要获取这些信息: 手机是否联网 ...
- 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 ...
- 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. ...
最新文章
- c2064 项不会计算为接受0个参数的函数_【JS必知必会】高阶函数详解与实战
- aaaaaaaaaaa
- java Random类详解
- Kali Linux 安全渗透教程第一更
- 【Lucene4.8教程之四】分析
- Parent Equipment 和IBASE relationship创建时的检查逻辑
- Boltzmann Machine 入门(2)
- python股票网格交易法详解_干货 | 浅谈网格交易法
- 深入学习用Go编写HTTP服务器
- uva 10816 Travel in Desert(简单的好题~两种方法)
- 地理必修一三大类岩石_90后地理老师4天收700封情书!这波操作,绝了……
- Apache Flink Meetup ·上海站精彩回顾(附PPT下载)
- Linux网络操作系统及应用教程(项目式)项目四
- 算法程序-通过log重现计算过程
- VLAN trunk实验
- 【gfs】google file system 之重点剖析
- 将MongoDB安装在移动硬盘
- 这几年被分布式坑惨了,曝光十大坑
- 大象装企营销:16个月,血亏300万,投资人撤资,公司倒闭
- 疫情后推动出行即服务