项目运行一段时间后 总是打不开了 报错 可能存在泄露 但是排除时 方法给出的状态有异常 返回

SqlSugar 沟通中
1 696

项目运行一段时间后 接口访问数据库一直提示: Connect Timeout expired. All pooled connections are in use.

怀疑是链接未关闭导致连接池满了吧

项目Sqlsugar配置中 也加入了       config.IsAutoCloseConnection = true;这个自动关闭

当我想检查执行完sql后 事后关闭连接时  出现疑问  具体可查看一下截图

QQ20251221-214210.png

QQ20251221-214245.png


从以上方法中可以看到  执行sql前  连接状态是 closed 关闭状态      执行sql后 连接状态是 open        我猜想  是否是 执行前 链接还在链接池中 未执行   等执行sql后 链接才被拿来使用 所以状态是 open   那我现在 想检查是否存在未关闭连接  检测泄露的话  那我应该怎么检测呢 

热忱回答1

  • fate sta fate sta VIP0
    2025/12/22

    这个错就2种可能

    1、并发过高,超过数据库处理上限 (异步+maxpoolsize=512处理),如果还不行考虑减少数据库请求次数。

    2、并发不高,出现这个一般一般是线程安全引起的释放失败,看文档:偶发

    0 回复