You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发环境HikariPool连接超时异常求助(本地运行正常)

HikariPool连接超时异常(仅开发环境间歇性出现)

异常信息

仅在开发服务器间歇性触发以下异常,本地运行完全正常:

HikariPool-1 - Connection is not available, request timed out after 30004ms.

业务需求与实现逻辑

需求

  • 将源表数据导入目标表
  • 迁移过程中发生异常时,回滚主事务并将异常信息独立提交到日志表

实现方式

  • 给执行数据迁移的DemoService类添加@Transactional注解
  • 通过@Aspect实现@AfterThrowing切面,调用带有@Transactional(propagation = Propagation.REQUIRES_NEW)注解的LoggingService记录日志,保证日志事务独立提交

问题现象

开发环境触发异常进入日志记录逻辑时,Hikari连接池无法获取新连接,超时抛出上述异常。从日志可确认:

  • 连接池配置的maximum-pool-size为3,但实际仅能创建1个连接
  • 后续尝试创建连接时抛出NullPointerException,无法填充连接池
  • 异常发生时Oracle仅存在1个会话,正常运行时为3个,说明连接池未成功创建足够连接

已排查内容

  • 确认Oracle数据库的IDLE_TIME远大于Hikari的maxLifetime,CONNECT_TIME无限制
  • 排除Spring Bean懒加载的影响,验证JdbcTemplate场景下问题仍存在
  • 本地与开发环境使用完全相同的数据库配置

疑问

  1. 日志中频繁出现的HikariPool-1 - Cannot acquire connection from data source是否与当前问题相关?是否由网络不稳定导致?
  2. 日志中连接池状态从waiting=1变为waiting=0,是否是因为连接请求超时未获取到连接?
  3. 配置maximum-pool-size为3却无法创建足够连接,是否与Hikari的连接创建线程有关?

已准备好包含DDL语句与开发环境日志的示例代码,恳请帮忙分析问题原因。


内容的提问来源于stack exchange,提问作者koreanDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 13:55:16