达梦数据(DM8) 返回

问题 : 进行数据库数据操作 导致出现大量的 TCP TIME_WAIT ,需要等待半分钟 才会消失,占用过多 就会连不上数据库
截取部分
测试demo
使用MySql 不会出现这种情况,mysql 执行如下
热忱回答(16)
-
fate sta VIP0
2024/5/11有没有报错,如果没报错就是OK的
0 回复 -
fate sta VIP0
2024/5/11目前代码是对的 ,应该没有问题 ,.net链接池非常严格只要不报错就是OK
0 回复 -
fate sta VIP0
2024/5/11IsAutoCloseConnection = true
设置为true
0 回复 -
fate sta VIP0
2024/5/11还有疑问提供可以报错的DEMO ,目前你的DEMO是OK的
0 回复 -
棉花糖 VIP0
2024/5/11@fate sta:把demo 和数据库放在一个服务器上 测试插入数据改大点 当链接站满了后 报连不上数据库
0 回复 -
fate sta VIP0
2024/5/13@棉花糖:你就一个简单循环不会报错的
0 回复 -
fate sta VIP0
2024/5/13如果是系统问题可以禁用一下连接池 :Pooling =true 字符串加上
max pool size调大些
0 回复 -
fate sta VIP0
2024/5/13我这边正常
0 回复 -
棉花糖 VIP0
2024/5/13@fate sta:Pooling =true 这个我尝试了的,报连接串错误。 我现在的程序是 接口加定时任务,定时任务有多线程,
出现大量的未被释放的 TCP TIME_WAIT ,demo 出现的量比较少,win10 或win11 30S 会回收,服务器是 180s
0 回复 -
fate sta VIP0
2024/5/13@棉花糖:那是线程问题加上copynew 。
0 回复 -
fate sta VIP0
2024/5/13定时任务有多线程 一看就是线程问题 ,这个加copynew就行了
0 回复 -
fate sta VIP0
2024/5/13还有疑问看文档:偶发
0 回复 -
棉花糖 VIP0
2024/5/13@fate sta:线程中我是进行了 copyNew() 其实问题是出在 TIME_WAIT状态的数量过多,可能会耗尽系统的可用端口,导致新的连接无法建立。
0 回复 -
fate sta VIP0
2024/5/13@棉花糖:有问题提供完整能重现的DEMO
0 回复 -
fate sta VIP0
2024/5/13你可以精简成一个DEMO进行测试,如果DEMO不能重现可能是你代码问题
0 回复 -
棉花糖 VIP0
2024/5/13@fate sta:问题找了 是数据库问题,达梦数据库部署在windows上有这个问题,数据库在linux上无问题,
0 回复