生产环境,突然爆发问题,网络正常,但是报网络不通错误,重启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(用十进制的格式录入进去)

祝开发顺利!

最新文章

  1. 【C语言学习趣事】_33_关于C语言和C++语言中的取余数(求模)的计算_有符号和无符号数的相互转换问题
  2. owin,webapi中将文件写入到response stream中
  3. 使用的组件:Jcrop
  4. C++ primer的第一章的主要内容
  5. excute和query
  6. js中定义对象的方式有哪些?
  7. C++中new和不new的区别
  8. MySQL存储过程(一)
  9. java中的反编译
  10. 如何通过C#操作Access,本人亲测通过
  11. Docker部署脚本
  12. C++入门篇十
  13. Ubuntu下创建XFS文件系统的LVM
  14. Hadoop记录- Yarn scheduler队列采集
  15. python正则表达式 - re
  16. List排序Collections.sort 重写compare
  17. BZOJ 3622 : 已经没有什么好害怕的了(dp + 广义容斥原理)
  18. 【Java】浅谈HashMap
  19. django创建应用
  20. Excel2013复制内容粘贴到刷选的数据表中

热门文章

  1. AngularJS 指令(意义)
  2. 使用IntelliJ IDEA 配置JDK(入门)
  3. query或者JavaScript实现在textarea光标处插入文本
  4. 每天一个 linux命令(35):ln 命令(转载)
  5. HTML 5.1 -- 14项新增功能及如何使用
  6. 公司6:JrVue重用布局
  7. ACM_蛇形矩阵
  8. (求助)对某一颜色,设置透明度 alpha 后,其他使用该颜色的地方 受到影响!!!!原因未知
  9. NodeJS、NPM安装配置步骤
  10. Farseer.net轻量级开源框架 中级篇:执行SQL语句