由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作

日志内容:System.Data.Entity.Core.EntityException: 基础提供程序在 Open 上失败。 ---> Oracle.ManagedDataAccess.Client.OracleException: 网络传输: TCP 传输地址连接故障 ---> OracleInternal.Network.NetworkException: 网络传输: TCP 传输地址连接故障 ---> System.Net.Sockets.SocketException: 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。

检查当前有多少个大概有TCP连接
检查当前有多少个大概有TCP连接2

那么如何检查当前系统有多少个TIME_WAIT连接(或多少个活动连接)?

netstat -an | find /C "TIME_WAIT"

检查当前有多少个大概有TCP连接

netstat -an | find /C "TCP"

修改两个注册表

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort
如果没有,则手动创建 DWord(32位)”数值数据“改为十进制65534 或者认为适当的值。
此值表示 用户最大使用的端口数量,默认为5000。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\TCPTimedWaitDelay
如果没有,则手动创建 DWord(32位) ”数值数据“改为十进制30 或者你认为适当的值。
此值表示一个关闭后的端口等待多久之后可以重新使用,默认为120秒,也就是2分钟才可以重新使用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。