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

查看:772
本文介绍了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身份验证

到目前为止收集的证据:

Evidence collected so far:

  • 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天全站免登陆