生产环境,突然爆发问题,网络正常,但是报网络不通错误,重启tomcat立刻好使

开始以为是tomcat的问题,调查了很久,后来加上堆栈日志才发现

简单来说,就是1-4分钟之内,使用了大量的http请求,达到了操作系统限制的最大值,所以许多请求处于wait状态,导致程序错误

原代码,httpClient 未关闭

finally {
if (is != null) {
is.close();
}
if (postMethod != null) {
postMethod.releaseConnection();
}
}

新代码,httpClient正确关闭

finally {
if (is != null) {
try{
is.close();
}catch(Exception e){ }
}
if(postMethod!=null)
postMethod.releaseConnection();
if(httpClient!=null)
httpClient.getHttpConnectionManager().closeIdleConnections(0);
}

改完这个没好使...[2018/10/18更新]

继续查资料,发现与操作系统有关,此程序所在系统是windowsServer2003 32位

修改注册表

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters

新建 DWORD 类型的注册表项,命名为:MaxUserPort

值数据: 60000(用十进制的格式录入进去,此值的有效范围为5000-65534)

新建 DWORD 类型的注册表项,命名为:TCPTimedWaitDelay

值数据: 30(用十进制的格式录入进去,TIME_WAIT的自动断开时间,默认为4分钟)

HKEY_LOCAL_MACHINE/CurrentControlSet/Services/Tcpip/Parameters下的以下三个参数: 
KeepAliveInterval,设置其值为1000(用十进制的格式录入进去)
KeepAliveTime,设置其值为300000(单位为毫秒,300000代表5分钟) (用十进制的格式录入进去)
TcpMaxDataRetransmissions,设置其值为5(用十进制的格式录入进去)

祝开发顺利!

No buffer space available错误解决方案的更多相关文章

  1. LoadRunner系列之---web_set_sockets_options,解决No buffer space available错误

    1. 如果在系统运行过程中出现"No buffer space available"或者出现大量连接出现wait的时候, 如何解决? 解决办法: 保证迭代结束后关闭所有的链接: 在 ...

  2. ping 或者ssh 发生connect: No buffer space available 错误

    如果遇到这种情况,一般说明你的本地服务器的arp表缓存太大,而服务器内核设定的回收条数太小,一直被回收造成的. 可以用一下命令扩大arp表可以缓存的记录条数: echo 512 > /proc/ ...

  3. IDEA 服务启动报:No buffer space available (maximum connections reached): connect的解决方案。

    错误提示:严重: Error starting endpointjava.io.IOException: Unable to establish loopback connectionat sun.n ...

  4. Oracle Ora 错误解决方案合集

    注:本文来源于 < Oracle学习笔记 --- Oracle ORA错误解决方案 > ORA-00001: 违反唯一约束条件 (.)错误说明:当在唯一索引所对应的列上键入重复值时,会触发 ...

  5. An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.

    与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (provider: TCP ...

  6. socket-详细分析No buffer space available

    关键词:socket,tcp三次握手,tcp四次握手,2MSL最大报文生存时间,LVS,负载均衡 新年上班第一天,突然遇到一个socket连接No buffer space available的问题, ...

  7. sendmsg: no buffer space available

    今天在将项目从虚拟机上移植到真实机器上面的时候,发现问题,总是不成功,最后判断是userspace的程序没有向kernel发送消息成功,因为无法触发kernel的行为,但是userspace显示正常. ...

  8. socket-详细分析No buffer space available(转)

    新年上班第一天,突然遇到一个socket连接No buffer space available的问题,导致接口大面积调用(webservice,httpclient)失败的问题,重启服务器后又恢复了正 ...

  9. java socket / No buffer space available

    s https://www.cnblogs.com/yiwangzhibujian/p/7107785.html Socket用在哪呢,主要用在进程间,网络间通信. https://www.cnblo ...

随机推荐

  1. jQuery 表格隔行变色插件

    jQuery提供了用于扩展jQuery功能的方法,即jQuery.fn.extend()方法和jQuery.extend()方法. 基本的JS框架代码如下: ;(function($) { $.fn. ...

  2. bzoj 3396: [Usaco2009 Jan]Total flow 水流【最大流】

    最大流生动形象的板子,注意数组开大点 #include<iostream> #include<cstdio> #include<queue> #include< ...

  3. bzoj 1644: [Usaco2007 Oct]Obstacle Course 障碍训练课【spfa】

    洛谷的数据毒啊 把(i,j,k)作为一个点spfa,表示点(i,j)朝向k方向,然后向四个方向转移即可 #include<iostream> #include<cstdio> ...

  4. P3402 【模板】可持久化并查集

    传送门 //minamoto #include<bits/stdc++.h> using namespace std; #define getc() (p1==p2&&(p ...

  5. 1051 复数乘法(C#)

    一.题目内容如下: 复数可以写成 ( 的常规形式,其中 A 是实部,B 是虚部,i 是虚数单位,满足 1:也可以写成极坐标下的指数形式 (,其中 R 是复数模,P 是辐角,i 是虚数单位,其等价于三角 ...

  6. jQuery——修改网页字体大小

    HTML: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <lin ...

  7. Visual Studio 生成项目时脚本执行

    项目属性 - 生成事件 项目生成前:预先生成事件命令行: 项目生成后:后期生成事件命令行:例:copy $(ProjectDir)Reference\sms_cfg.ini $(TargetDir) ...

  8. Spring.Net学习笔记(0)-错误汇总

    1.错误一:ObjectDefinitionStoreException "Spring.Objects.Factory.ObjectDefinitionStoreException&quo ...

  9. php函数的定义和声明

    1.函数的定义 函数是一个被命名的独立的代码段,它执行特定任务,并可以给调用它的程序返回值. 2.函数的优点 提高程序的重用性 提高程序的可维护性 可以提高软件的开发效率 提高软件的可靠性 控制程序的 ...

  10. 手机页面操作栏的创建及WebFont的使用

    一.手机界面底部操作栏的创建. <style> .opers{ position:absolute; bottom:0px; left:0px; right:0px; height:3re ...