我在积累会议时遇到问题。 我在Windows服务器上运行Tomcat 6.0.18的一个实例。 我有3个应用程序。
我一直有内存问题(接近堆大小,或OOM)。 当我看看Tomcatpipe理器时,我在3个应用程序中都会看到500-1000个会话。 当我在Tomcatpipe理器中查看会话时,我可以看到有些会话在空闲时间内是多个小时,但它们并没有过期。
其中一个webapps有10分钟的超时时间,但是代码设置为60分钟(对于某些用户)。 其他应用程序有15和30分钟的超时。 我也有一个问题,在networking应用程序1重复点击与错误的会话cookie(它必须做我的mod_jk负载平衡),这驱动了会话计数。 (许多会话创build一个单一的请求,然后有一个60分钟超时)。 但是让我感到困惑的是,webapp 2和3也越来越高,而且在超时之后他们仍然坚持。
我理论上说,会话清理只发生在服务器负载不重的情况下,并且(在这种情况下)这么多会话累积,服务器的可用CPU空间不足,清理从不运行。 但我找不到任何提及这个理论的提法。
有谁知道会话到期algorithm的细节? 它不会在超时分钟上运行 – 它何时运行?
您可以通过Apache Tomcatconfiguration参考中所述的上下文configuration来禁用会话持久性:
禁用会话持久性
如上所述,默认情况下,每个Web应用程序都configuration了标准pipe理器实现,并在重新启动时执行会话持久性。 要禁用此持久性function,请为您的Web应用程序创build一个上下文configuration文件,并在其中添加以下元素:
<Manager pathname="" />