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

执行3次操作后网站无限加载无响应 无报错需重启Tomcat如何解决

故障排查与解决方案

优先排查数据库连接泄漏问题

你遇到的固定次数操作后服务阻塞、重启Tomcat即可恢复的表现,90%以上概率是数据库连接未正确释放导致的连接池占满:

  • 检查所有业务代码中Connection、Statement、ResultSet资源的释放逻辑,必须在finally块中按顺序关闭资源,或者使用try-with-resources语法自动关闭
  • 可以临时在Tomcat的context.xml中开启连接池的泄露检测:找到你配置的数据源Resource节点,添加以下属性:
removeAbandoned="true"
removeAbandonedTimeout="60"
logAbandoned="true"

配置后如果存在连接泄漏,超过60秒未关闭的连接会被强制回收,同时控制台会打印泄漏点的堆栈信息,可直接定位到未关闭连接的代码位置。

若排除连接泄漏再排查其他配置问题

你猜测的缓存配置问题概率较低,可按以下顺序排查:

  • 检查Tomcat线程池配置:查看conf/server.xml中的<Connector>节点,默认maxThreads为200,远不会出现3次操作就占满的情况,如果你手动修改过极小的数值可调回默认值
  • 排查线程死锁:服务阻塞时使用jstack命令导出Tomcat进程的线程堆栈,搜索是否存在BLOCKED状态的线程,定位死锁位置。

快速验证方案

你可以先临时将Tomcat数据库连接池的最大连接数调整到20,观察是否操作到20次左右才出现阻塞,如果完全符合该规律即可确认是连接泄漏问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:54:03