达梦数据库+SqlSugarCore+20UV 并发,连接池报错 返回

SqlSugar 待处理
2 275

环境说明:
达梦测试数据

DM Database Server 64 V8

DB Version: 0x7000c

03134284172-20240321-222308-20093

Msg Version: 0

Gsu level(3-4) cnt: 3

Gsu level(5) cnt: 0


代码配置:
测试程序 .net 8 Api程序
依赖:

  <ItemGroup> 

    <PackageReference Include="SqlSugarCore" Version="5.1.4.217" />

    <PackageReference Include="DM.DmProvider" Version="8.3.1.47463" />

    <PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />

  </ItemGroup>


配置项:
    "ConnectionString": "Server=192.168.35.151;Port=5236;User Id=CUBESGATEWAY;PWD=intekey.com;SCHEMA=CUBESGATEWAY;connPooling=true;connectionTimeout=3600000;connPoolSize=1000",


压测环境 PostMan Cli:
postman performance run [xxxx] --vu-count 20 --duration 1 --load-profile fixed

20UV 持续 1min 

压测结果:

刚开始还可以后续报错》

 连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确,错误信息:6123,从连接池中获取连接时超时

[extraInfo]:{get}->{TryDequeue()}->{TryDequeue() failed}->{DequeueTimeout(timeout)}->

{DequeueTimeout(timeout) failed}->{totalCount=1000}->

{limit=1000}->{ConnPoolSize=1000}DbType="Dm";ConfigId="DispatchGateway.Dm".


去掉配置项连接池信息之后依旧报错:

    SqlSugar.SqlSugarException:  连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确,

  错误信息:6001,[192.168.35.151:5236 (UNKNOW, UNKNOW)]通常每个套接字地址(协议/网络地址/端口)只允许使用一次。

      DbType="Dm";ConfigId="DispatchGateway.Dm".


热忱回答2

  • 补充压测结果截图:
    image.pngimage.png

    0 回复
  • 已解决:
    解决方案-》在业务逻辑代码中压测接口,
    1、先插入一条记录
    2、查询配置表
    3、批量插入配置分发子任务表
    三次数据库连接操作,会创建三条连接池
    此时压测之后出现报错。
    调整思路-》显示声明UseTran会创建一个连接池,公用这个连接,避免连接池耗尽,再次压测未复现错误信息
    image.png

    0 回复