DBCP2连接池频繁报错java.lang.IllegalStateException: Pool not open问题

ArcGIS实战:地形湿度指数(TWI)计算全流程解析 本文详细解析了ArcGIS中地形湿度指数(TWI)的计算全流程,从DEM数据获取、填洼处理到水流方向与汇流累积量计算,最终实现TWI的精准计算。通过实战步骤指导,帮助读者掌握水文建模和土壤湿度预测的关键技术,适用于农业规划、生态研究等领域。 阅读详情

问题现象:

服务频繁出现 java.lang.IllegalStateException: Pool not open 报错。        

问题原因:

连接池的实现中一般会通过定时任务对失效连接进行过期检测,并及时剔除。在dbcp2连接池中,该定时器任务实现类为:BaseGenericObjectPool.Evictor。

一般一个服务会因为连接不同的集群,不同的节点,从而需要创建多个连接池。每个连接池都会有一个对应的 Evictor进行过期连接检测、剔除。

commons-dbcp2:2.1.1包会依赖commons-pool2:2.4.3。该包中这部分功能的实现代码有bug,具体bug如下:

连接池创建时,定时任务启动代码为:

可以看到,这里创建了一个ScheduledThreadPoolExecutor线程池,并调用线程池的scheduleWithFixedDelay方法,开始调度该任务。

而该调度任务的取消逻辑如下:

可以看到,这里主要是通过调用TimerTask.cancel()方法进行调度取消,需要注意的是,该方法是不能取消调度的。只有由Timer定时任务机制进行管理的TimerTask,才能通过调用cancel方法进行取消。上面是由ScheduledThreadPoolExecutor线程池实现的定时任务管理,需要调用提交任务返回的Feature.cancel方法进行取消。

  

再apache的问题修复记录中也记录了该问题:

详见:Issue Navigator - ASF JIRA

一般场景下,当db节点发生变更等情况,导致连接池关闭时,由于该bug。会导致该定时任务不能释放,由此会引发频繁打印日志、内存泄露问题。

解决方案:

升级commons-dbcp2版本即可。升级到2.5.0。

行人检测模型在海思平台上的部署:从 PyTorch 到 NNIE 深度优化与实践 摘要 本文详细介绍行人检测模型从PyTorch到海思NNIE平台的部署流程。首先分析了行人检测面临的挑战(尺度变化、遮挡、姿态多样性等)及边缘部署的优势(实时性、隐私保护等)。重点阐述了模型转换过程:PyTorch→ONNX→Caffe→NNIE-WK,其中PyTorch转ONNX需注意评估模式设置、虚拟输入匹配、操作集版本选择等关键点。文章旨在帮助开发者在海思3516D芯片上实现高效的行人检测,克服部署过程中的常见问题,最终实现边缘设备的实时目标检测能力。 阅读详情

相关推荐

[渗透测试实战篇-4] RCE漏洞组合拳突破Getshell全解析

本文深入解析RCE漏洞组合拳在渗透测试中的实战应用,通过SSRF、XXE等漏洞串联技术突破Getshell的全过程。文章详细介绍了Java和PHP环境下的漏洞利用差异,以及防御绕过与权限维持的实用技巧,为安全研究人员提供全面的实战指导。

weixin_29211309的博客 350

Redis踩坑系列(一)Spark Redis连接池报错Pool not open解决

用Spark将大量HDFS数据批量写入Redis 需求 批量读入HDFS离线数据 将数据按照partition分区写入redis中 redis集群是哨兵模式。使用pipelined方法 代码 import java.util.Properties import java.util import org.apache.commons.pool2.impl.GenericObjectPoolConfig import org.apache.spark.rdd.RDD import redis.clients

dreamingfish2011的博客 5804

RTX 50系显卡(5080/5090D)CUDA 12.8环境下的vLLM部署避坑与实战指南

本文为RTX 5080/5090D显卡用户提供了在CUDA 12.8环境下部署vLLM的完整实战指南。文章详细介绍了从驱动安装、CUDA 12.8环境配置、PyTorch Nightly版本精准匹配,到vLLM源码编译及常见报错排查的全过程,帮助开发者高效利用新一代硬件进行大模型推理。

gray5的博客 663

java.lang.IllegalStateException: Pool not open解决方案

在使用Spring进行系统开发的时候,数据库连接一般都是配置在Spring的配置文件中,并且由Spring来管理的。在利用Spring + Hibernate进行开发时也是如此。下面是一个简单的Spring + Hibernate Dao的例子:public class DaoReal extends HibernateDaoSupport implements Dao {   public Li

sdojqy1122的专栏 2万+

手把手教你用STM32单片机DIY一个简易PLC(附完整电路图与PCB文件)

本文详细介绍了如何利用STM32单片机DIY一个简易PLC控制器,涵盖硬件设计、电路图解析、PCB布局优化及固件框架实现。通过完整的电路图和PCB文件,帮助读者从元器件选型到工业级优化,逐步构建可靠的PLC系统,特别适合工业自动化爱好者和学习者实践。

weixin_42527160的博客 569

广东省道路工程检测练习试题(单选题)真题

1.一般项目的合格点率应达到( ),且不合格点的最大偏差值不得大于规定允许偏差值的1.5倍。A.不低于75%B.不低于80%C.不低于85%D.不低于90%答案:B2.进行土路基平整度检测时,当路宽小于9m,检测点数应为( )A.1B.2C.3D.4答案:A3.根据《城镇道路工程施工与质量验收规范》,在分部工程中,根据工种、材料、施工工艺等划分的是( )A.单位工程B.分项工程C.分部工程D.工序工程答案:B4.根据《城镇道路工程施工与质量验收规范》,土方路基压实度的检测频率为每1000m每压实层抽检( )

ZShy001238的博客 681

mm_java.lang.IllegalStateException: Pool not open 500

问题描述: 更新项目与未更新项目都出现了这个情况 检查端口,也是正常,不存在故障的情况 多次重启项目,也没达到预期效果 问题处理: 把项目clean了一下,重新启动,可以正常运行(why?) http://blog.csdn.net/icecoola_/article/detai...

icecoola_的博客 3332

001、Zephyr RTOS简介与历史背景

本文介绍了Zephyr RTOS的特点及其在嵌入式开发中的应用。作者通过亲身经历比较了Zephyr与传统RTOS的差异,重点分析了Zephyr的设备树、统一驱动模型、基于CMake的构建系统、POSIX兼容层等核心特性。文章详细阐述了Zephyr在内核设计上的优势,如中断处理模型、内存管理等,并提供了社区生态和使用建议。作者建议开发者从简单项目入手逐步掌握Zephyr,同时指出了常见的使用问题和适用场景,认为Zephyr特别适合复杂软件架构的物联网和工业控制项目。

m0_50546716的博客 154

学习Redis踩坑记录

于是我再往上翻了翻,是我在类加载后开启的线程里的无法在redis里找到对应key的消息队列,但是由于我的消息队列异常是在while(true)里的,所以,这个异常就一直报,把真正的错误给顶到最上面去了......我的解决方法是在消息队列异常后就线程休眠20分钟,太菜了想不到有更好的方法。修改后我直接启动,没有杀死原来的线程再启动,于是......它竟然再开了一个线程,并且是一直沿用旧的线程,于是我只好把线程全删了,再启动,配置才生效。

weixin_73512213的博客 543

全网最详细教程,手把书教你使用YOLOv10训练自己的数据集和推理(附YOLOv10网络结构图)

YOLOv10,由清华大学多媒体智能组只开发,是一款亳秒级实时端到端目标检测的开源模型。该模型在保持性能不变的情况下,与YOLOv9相比,延迟减少了46%,参数减少了25%,非常适合需要快速检测物体的应用,如实时视频分析、自动驾驶和智能医疗等领域。这些改进使得YOLOv10在实时物体检测领域达到了新的技术水平。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1万+

Android 9.0 SystemUI禁用长按recent键的分屏功能

​ 在9.0的系统产品开发中,系统对于多窗口模式默认会有分屏功能的,但是在某些产品中,需要禁用分屏模式,所以需要在导航栏中 禁用长按recent的分屏模式功能,接下来分析下相关分屏模式的实现 ​

安卓兼职framework和app工程师的博客 448

ActiveMq PooledConnectionFactory throws 'IllegalStateException: Pool not open' after re-init

最近公司项目使用了ActiveMq 作为消息队列,老出现一个奇怪的现象,mq 生产环境运行一段时间会出现:org.springframework.jms.IllegalStateException: java.lang.IllegalStateException: Pool not ...

chiqu0946的博客 1041

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

MySQL 数据库问题分析思路

最近后台服务突然出现了连接池不够用的情况,不定时的会抛出java.lang.IllegalStateException: Pool not open 2019-09-06 08:21:52.701->java.lang.IllegalStateException: Pool not open java.lang.IllegalStateException: Pool not open ...

GreenOwl_的博客 2017

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

深入解析java.lang.IllegalStateException异常

是Java中的一个非受检异常,它表示在不适当的时间或状态下调用方法。日志记录工具:如Log4j、Logback等,可以记录异常信息和错误日志,方便排查和分析问题。断言工具:如Assert类,可以在程序中添加断言语句,用于验证代码中的假设条件是否满足,帮助我们在开发和测试阶段快速发现问题。异常处理框架:如Spring框架中的异常处理机制,可以统一处理应用程序中的异常,提供统一的异常处理逻辑和错误信息返回。异常是程序中常见的错误和异常情况,合理处理异常对于保证程序的正确性和稳定性非常重要。

博客 4万+

解决Caused by: java.lang.IllegalStateException:

通过调整JVM的-Xss参数、检查循环继承依赖项和更新相关库和依赖,我们可以解决​​Caused by: java.lang.IllegalStateException: 由于StackOverflower错误无法完成对web应用程序[/lib]的批注的扫描​​异常。在解决这个问题时,我们需要对应用程序的结构和依赖进行深入的分析和调试,以确定根本原因并采取相应的措施。当我们开发Web应用程序时,有时候会遇到上述的​​异常。

牛肉胡辣汤 1万+

java报错pool_JedisPool连接池报错

redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the poolat redis.clients.util.Pool.getResource(Pool.java:50)at redis.clients.jedis.JedisPool.getResource(JedisPoo...

weixin_30697437的博客 668

spring整合hibernate关于session的管理

最近在测试oa系统的时候,发现若连接几次数据库后,tomcat就完全没反应,打开log文件,发现系统抛出java.lang.IllegalStateException: Pool not open的异常。在网上找到了问题及解决方法如下: 在使用Spring进行系统开发的时候,数据库连接一般都是配置在Spring的配置文件中,并且由Spring来管理的。在利用Spring + Hibernate...

solo.du 330

sparkstreaming 实时数据项目中遇到的问题

1.单个partition拉取数据条数的限制 val ppc = new PerPartitionConfig() { override def maxRatePerPartition(topicPartition: TopicPartition): Long = 1000 } KafkaUtils.createDirectStream[String, String...

luo222的专栏 1466

举例说明android中出现java.lang.IllegalStateException: database not open这种错误的原因及解决办法

java.lang.IllegalStateException: database not open 这是java的lang中不正常的状态异常:数据库不能打开   出现原因如下: //创建一个数据库中的表的语句 String sql01=" create table "+manager_table     +" ( "     +" name "+" varchar(255) , "

Ada168855的专栏 5184

Caused by: java.lang.IllegalStateException解决办法

Caused by: java.lang.IllegalStateException: Detected both log4j-over-slf4j.jar AND bound slf4j-log4j12.jar on the class path错误解决办法

GamePog的博客 2万+

tomcat启动失败,Caused by: java.lang.IllegalStateException

tomcat日志: Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [/vcss_webrms] due to a StackOverflowError. Possible root causes include a too low...

weixin_43869241的博客 4301

commons-dbcp数据库连接池基本使用

简介: commons-dbcp工具包是用来提供数据库连接池服务. 话不多说,奉上使用方法: ①引入maven依赖 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-dbcp2</artifactId> <v...

淋雨一直走啊 6464

dbcp连接池连接失效问题

一、问题出现 a.log的错误日志报了mysql的连接问题,时间在16:35分左右 [2016-09-14 16:35:03.643]Last packet sent to the server was 8 ms ago.; nested exception i...

chengniangyong6045的博客 1487
上一篇: localStorage使用总结
小a斌
博客等级 码龄12年 1粉丝 7原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值