Tomcat 在Windows 下运行一个webapp。几天后(在非常低的负载下),标题中提到的异常开始出现在日志中,从那时起无法建立新的连接,唯一的解决办法就是重启服务器。
环境:
- 最新的 Tomcat 6
- Windows 服务器 2008 R2
- JDK 6 更新 30
- SQL Server 2008
- Kerberos 身份验证
目前收集到的证据:
- netstat 显示没有过多的连接
- ProcessExplorer 显示没有过多的打开文件句柄
- 系统主内存使用率一般
- JVM 堆使用率一般
- 重启Tomcat并不能解决问题
开放式问题:
- 如果我们泄漏了连接,它们不应该出现在 netstat 中吗?
- 难道重启应用服务器不能解决问题吗,因为操作系统应该释放所有进程资源?
- 有没有办法追溯问题的根源?例如。安装监控软件,可能类似于 lsof 等?
我没有想法,感谢任何提示!
最佳答案
我们收到此错误的原因是 Windows Server 2008 R2/Windows 7 中的一个错误。由于多核机器上的竞争条件,内核会泄漏环回套接字,此补丁修复了该问题: http://support.microsoft.com/kb/2577795
关于windows - java.net.SocketException : No buffer space available (maximum connections reached? ): JVM_Bind,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10088363/