今天在公司服务器上部署的一套后台系统突然不能使用了,上服务器看了一下,控制台打印了如下错误信息:

java.SocketException: No buffer space available (maximum connections reached?): JVM_Bind

之前最快的方法是重启服务器,效果立杆见影(万能的重启大法!),但是治标不治本,过一段时间,这个问题又会再次出现。。

是可忍孰不可忍,上网搜寻了一下相关的资料,在stack overflow中看到一条评论说这个是windows server 2008/windows 2007系统版本存在的一个bug,需要在系统中打如下补丁,方能解决问题:

http://support.microsoft/kb/2577795

赶紧查看了一下服务器的系统版本,是windows server 2008r2,果断下载补丁打上,测试一下,ok了!

PS: 根因: 
Windows Server 2008 R2系统BUG导致windows缓冲区已满(no buffer space),Windows核心套接字泄露问题导致操作系统套接字资源被耗尽,导致controller服务器与数据库无法正常对接。

解决方案: 
1、安装Windows kb2577795补丁—解决controller服务器windows缓冲区已满(no buffer space)的问题 
2、安装Windows kb2553549补丁—解决数据库服务器TCP连接不释放问题

  • 参考资料:

Windows 2008 R2系统BUG导致controller服务器与数据库连接异常,认证上网业务失效:

http://forum.huawei/enterprise/thread-354579.html 
stack overflow 
https://stackoverflow/questions/10088363/java-net-socketexception-no-buffer-space-available-maximum-connections-reached

更多推荐

No buffer space available问题解决