Error is 10055 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作
今天上午,一个同事反映:某系统的某个通过socket来进行通信的服务无法连接上数据库里,在操作系统上用数据库的客户端测试数据库连接也出现这样的错误信息:Error is 10055 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。
经过检查,发现该程序是部署在一个前置机上,上边有一个通过SOCKET提供服务的程序,由于网络方面及程序设计本身存在一定缺陷,导致该程序需要通过一个小脚本来定时触发一次交易,以保障会话不会被超时断开。就这样,服务器上就会不断的有新的产生,由于程序或操作系统本身存在缺陷,最终导致了相关端口被分配完毕,最终引起了该问题。
处理办法:1、netstat -an 检查端口的使用及连接情况
2、注销掉运行有服务的用户之外的其他用户。
3、关闭定时触发脚本及应用服务
4、再次通过netstat -an检查端口情况,发现已经得到释放
5、重启服务及定时脚本,问题得到解决。
--------------------------------------------
快乐地度过每一天,踏实、认真地做好每一件事。