2013-05-28 51 views
0

我已经在全国各地(加拿大)部署了一个非常大的应用程序,这意味着很多并发连接。当前线程忙于Tomcat状态的处理是什么?

最近我们已经达到了并发线程的最大数量,因为我们的jBoss被配置为40个最大线程。现在它是250,所以我们很好。

时不时地,我期待在Tomcat的状态页面,我看到线程JavaScript文件,CSS文件,支柱(JAVA)动作等

怎么会在JavaScript或CSS文件中的线程为了我的生命而不是几秒钟?我认为线程只在页面加载期间(当客户端将javascript文件下载到缓存时)。我对吗?

示例条目

Stage: S 
Time: 1127110823 ms 
B Sent: 0 KB 
B Recv: 0 KB 
Client: client's ip address... 
VHost: server's vhost... 
Request: GET /que/2715/jsp/common/js/jquery/jquery.maskedinput.js HTTP/1.1 

这个人是一直在这里。我不明白为什么...

我想了解所有这些信息,然后改变我的方式代码以释放一些当前线程。

谢谢大家帮忙

查尔斯

回答

1

错误操作的HTTP客户端可能无法ack'ing您的TCP数据包,即使是非常小的文件,和Tomcat正在等待ACK的,因为它不希望关闭连接,直到确定客户端获得了所有信息。检查server.xml中HTTP连接器的超时值(尤其是connectionTimeout),并确保它们未设置为非常大的值或-1(等待无限次)。

有关配置中超时设置的更多信息,请参阅http://tomcat.apache.org/tomcat-7.0-doc/config/http.html

-Larry 
+0

没有一个server.xml超时会影响此行为。你所描述的是由TCP堆栈完成的,而不是由Tomcat完成的。 – EJP

+0

看起来像我们托管的环境在jBoss前面使用mod_jk。请参阅:http://1.bp.blogspot.com/_y8SmAu6cJZ4/TTpexxSN10I/AAAAAAAAAH4/lYekuJOxwMQ/s1600/Tomcat-cluster-diagram.png –

+0

问题是我们在Windows环境中没有遇到过这种问题( jBoss作为Windows服务运行,直接使用HTTP协议)。是否有任何配置可以解决新环境(apache和mod_jk)上的问题?感谢您的帮助 –

相关问题