java.net.SocketException:没有可用的缓冲区空间(达到最大连接数?):JVM_Bind [英] java.net.SocketException: No buffer space available (maximum connections reached?): JVM_Bind

查看:46
本文介绍了java.net.SocketException:没有可用的缓冲区空间(达到最大连接数?):JVM_Bind的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Tomcat 在 Windows 下运行 webapp.几天后(在非常低的负载下),标题中提到的异常开始出现在日志中,从此无法建立新的连接,唯一的解决方法是重新启动服务器.

Tomcat is running a webapp under Windows. After a few days (under very low load), the exception mentioned in the title starts to appear in the logs, no new connections can be established from that point on, the only fix is then to reboot the server.

环境:

  • 最新的 Tomcat 6
  • Windows Server 2008 R2
  • JDK 6 更新 30
  • SQL Server 2008
  • Kerberos 身份验证

目前收集的证据:

  • netstat 显示没有过多的连接数
  • ProcessExplorer 没有显示过多的打开文件句柄
  • 系统主内存使用率平均
  • JVM 堆使用率平均
  • 重启Tomcat没有解决问题

开放式问题:

  • 如果我们泄露了连接,它们不应该出现在 netstat 中吗?
  • 是否应该重启应用服务器来解决问题,因为操作系统应该释放所有进程资源?
  • 有没有办法追查问题的根源?例如.安装监控软件,可能类似于 lsof 等?

我没有想法,感谢任何提示!

I'm out of ideas, any hints appreciated!

推荐答案

我们得到这个错误的原因是 Windows Server 2008 R2/Windows 7 中的一个错误.由于机器上的竞争条件,内核泄漏了环回套接字.一个核心,这个补丁解决了这个问题:http://support.microsoft.com/kb/2577795

The reason we got this error is a bug in Windows Server 2008 R2 / Windows 7. The kernel leaks loopback sockets due to a race condition on machines with more than one core, this patch fixes the issue: http://support.microsoft.com/kb/2577795

这篇关于java.net.SocketException:没有可用的缓冲区空间(达到最大连接数?):JVM_Bind的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆