Tomcat connectionTimeout设置过大引起的奇怪现象及解决办法|后台服务器|码途山海.智隐长卷 -

程序人生|重庆纽新

找回密码
立即注册

QQ登录

只需一步,快速开始

欢迎访问【程序人生-重庆纽新】,本网站为软件开发人员视觉的IT资讯、软件开发中各种问题的解决办法!!
搜索
发新帖


2308

积分

0

好友

259

主题
楼主
发表于 2017-9-12 13:27:52 | 查看: 5896| 回复: 1
一、现象
    运行于Windows 2012服务器下的tomcat,一开始一切正常,到了某一天,突然发现部分电脑运行不正常了。经与现场人员联系,发现是页面的jquery.js加载不成功,导致后面的代码不能运行,但是部分电脑上却是正常的。在服务器上访问正常、开发人员电脑上访问也正常,一个网段正常,另一个网段的电脑全部不正常。

二、排查过程及问题解决
  第一步: 经与现场人员多次沟通,发现是jquery加载不正常,但是在服务器上却一切正常。登录页面能显示出来,就是不能全部正常运行,说明网络应该是正常的,经检查网络连接也正常。各种浏览器均不正常,但是在一台电脑上IE偶然正常了一次。
第二步:由于前一天调整过网络,配置了VPN,与网络公司各种联系,怀疑网络原因。将防火墙与路由器关掉,依然不正常。
第三步:由于现场电脑不是太多,找了一台电脑在服务器机房连接网络,发现访问也不正常。至此,已经排除网络原因。
第四步:既然jquery加载不成功,就换一个jquery版本,从网上下载一个版本,替换上去还是不正常,直接把jquery代码放在登录页面,依然不正常。但是在这个过程中,却发现直接使用网络上的jquery.js链接,却是正常的。百思不得其解啊。。。
第五步:在windows 2012上安装IIS,然后用一段代码测试加载jquery是否正常,结果发现居然是正常的。。。。,期间测试远程VPN也不通,各种郁闷啊
第六步:重新发布程序,测试运行,依然是服务器上正常,连在机房的笔记本上也不正常。
第七步:突然想起,前一天在做打包文件下载时,发现运行速度较慢,担心超时,将tomcat中的server.xml中的超时参数设置得很大,就是在缺省的20000后面增加了好几个0,然后将增加的0删除,重新启动tomcat,发现居然正常了。

三、原因   
   问题解决之后,各种百度谷歌,为什么直接使用服务器上的jQuery不正常,使用网络上的jQuery链接却是可以成功的,找不到的原因。网上一般都只是简单的说明参数的含义:网络连接超时,单位:毫秒。
   根据今天遇到的情况,发现这样的说明真是太简单了,没有什么意义。现在把这个参数的意义详细一点的解释复制过来,仅供参考,再来补充。
connectionTimeout
  • 经验值为2000-60000,默认的60秒对于一个web server可能太高了,可以设置为3000
  • 实际上指的是SO_TIMEOUT参数的值
  • 代表在阻塞读写时,两个tcp包到来的最大间隔时间
  • 当client比较慢的时候,可以增大该值
  • 当需要快速超时时,可以降低该值





收藏回复 只看该作者 道具 举报


沙发
发表于 2017-9-29 23:55:11
另外一下现场,Linux系统下,遇到访问一段时间(半天左右、100个用户点访问),然后就彻底不能访问了,检修服务,CPU、内存、tomcat进程都未发现异常,真是没办法!增加了acceptCount也一样。后来把connectionTimeout设置为10秒,但是没时间测试,就再增加了一个定时重新启动tomcat的定时任务,这样至少不出现连接不上的现象了。

回复 只看该作者 道具 举报

高级模式
B Color Image Link Quote Code Smilies



QQ|小黑屋| 码途山海.智隐长卷 渝ICP备15002301号-2   渝公网安备50011202504426

GMT+8, 2025-5-18 04:43 , Processed in 0.046992 second(s), 22 queries .

©Copyright 程序人生!

©2012-2015重庆纽新

快速回复 返回顶部 返回列表