No buffer space available 异常解决

描述:

现场生产环境反馈,经常几天就出现软件程序无法使用,后远程查看发现tomcat有出现Caused by: java.net.SocketException: No buffer space available (maximum connections reached?): connect 的报错。

解决方案(3种):

  1. 修改注册表 :(本人在现场用的这个方案)
    用管理员身份启动cmd>regedit 进入注册表:
    HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters
    新建 DWORD 类型的注册表项,命名为:MaxUserPort
    值数据: 60000(用十进制的格式录入进去,此值的有效范围为5000-65534)

    新建 DWORD 类型的注册表项,命名为:TCPTimedWaitDelay
    值数据: 30(用十进制的格式录入进去,TIME_WAIT的自动断开时间,默认为4分钟,此处改为30秒)

  2. 直接修改端口数量:
    (1)cmd命令下,使用:netsh int ipv4 show dynamicportrange tcp,
    可查看端口具体情况
    在这里插入图片描述(2)cmd命令下运行:netsh int ipv4 set dynamicport tcp start=2000 num=60000,修改端口数,其中start为起始端口号,num为端口数量

  3. 查资料有说Windows Server 2003、Windows Server 2008 或其它操作环境有bug,可尝试进行打补丁处理,补丁:KB2577795;

本人使用了方案1进行现场处理,已解决现场问题。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐