Lucee 6.0.0.313-SNAPSHOT每两小时报错:Pool exhausted(java.util.NoSuchElementException)
Lucee 6.0.0.313-SNAPSHOT "Pool exhausted" 问题排查方案
一、检查连接池核心配置
- 核实数据源连接池的
maxPoolSize参数,若设置过小(比如默认10),高负载场景下易耗尽连接。可临时调至20-30,观察报错是否缓解。 - 确认
idleTimeout、maxIdleTime参数配置,确保闲置连接能被及时回收,避免资源长期占用。
二、排查连接泄漏问题
- 检查业务代码中是否存在未正确释放数据库连接的场景:比如
queryExecute调用后未显式关闭,或try/catch块未在finally中处理连接释放。即便Lucee有自动回收机制,长运行线程、异常分支仍可能导致泄漏。 - 启用Lucee管理员后台的连接池监控,查看活跃连接数、等待队列长度,定位峰值时段的连接使用状态,确认是否有连接长期未释放。
三、校验数据库端配置限制
- 查看数据库自身的最大连接数限制(如MySQL的
max_connections),若数据库上限低于Lucee连接池配置,会直接导致池耗尽。 - 检查数据库日志,确认是否存在连接异常断开、超时的情况,这类问题会导致Lucee池中的无效连接堆积,占用资源。
四、针对快照版本的特殊处理
- 6.0.0.313为SNAPSHOT预览版本,可能存在未修复的连接池bug。尝试升级至最新稳定版或更高版本的快照包,验证问题是否已被修复。
- 检查
web.xml/server.xml中的连接池自定义配置,确认validationQuery等参数是否正确设置,避免因连接有效性检测失败导致无效连接堆积。
五、临时应急配置
- 若暂未定位根本原因,可配置连接池的
maxWaitTime参数(如30000毫秒),避免线程无限期等待;同时开启removeAbandoned和removeAbandonedTimeout,自动回收长期闲置的连接。
内容的提问来源于stack exchange,提问作者Saifullah Khalid
相关产品推荐
相关产品推荐

