我们运行的tomcat应用服务器可以处理100多个并发会话。在过去的两个月里,最活跃的用户注意到,有时他们会被踢出系统。
据我从日志中了解到,tomcat会话正在无缘无故地过期。
我认为web应用程序方面没有任何问题。tomcat方面有什么问题吗?
Tomcat 6.0.18。
发布于 2009-06-06 11:52:01
如果没有触发这个的代码机会,我会查看内存使用情况。这可能是Tomcat耗尽内存并使会话失效而无法恢复的结果。
如果可能,则监视垃圾收集,和/或使用jconsole或jvisualvm进行监视。
发布于 2009-07-23 20:57:27
一个可能的原因是您在会话中放入了一个没有实现Serializable接口的对象。Tomcat偶尔会在磁盘上写入一些会话。如果一个会话包含不可序列化的对象,那么它将被简单地从容器中删除(因为NotSerializableException)。如果发生这种情况,您应该会在tomcat日志文件中看到异常。
发布于 2009-06-07 20:00:45
我一般会增加对服务器的监控,特别是对会话的监控。
lambda probe是一个很好的监控应用程序,它允许您查看当前会话及其数据。我还会添加一个HttpSessionListener来记录会话的创建和销毁。
编辑
有没有可能,您将一些不可序列化的对象添加到会话中,而Tomcat无法将它们钝化到磁盘?
编辑2
Lambda探测器似乎已经死了,在http://code.google.com/p/psi-probe/上有一个更好的项目分支
https://stackoverflow.com/questions/959174
复制相似问题