Java Tomcat 6:实例之间的最大会话空闲时间不同

Java Tomcat 6:实例之间的最大会话空闲时间不同,java,http,session,tomcat,Java,Http,Session,Tomcat,我正在将HttpSession与Tomcat 6一起使用。我在其中部署web应用程序的第一个Tomcat 6实例具有我期望的Tomcat会话行为(我将会话上的maxInactiveInteval设置为30分钟) 更新:我在下面添加了更多代码,以准确演示如何在会话上设置此超时 以下是我第一次设置会话的方式: session = request.getSession(true); session.setAttribute(USER_CREDENTIALS, new Credentials(usern

我正在将HttpSession与Tomcat 6一起使用。我在其中部署web应用程序的第一个Tomcat 6实例具有我期望的Tomcat会话行为(我将会话上的maxInactiveInteval设置为30分钟)

更新:我在下面添加了更多代码,以准确演示如何在会话上设置此超时

以下是我第一次设置会话的方式:

session = request.getSession(true);
session.setAttribute(USER_CREDENTIALS, new Credentials(username, password));
session.setMaxInactiveInterval(60*30);
然后我有一个拦截器来检查这个会话:

HttpSession session = request.getSession(true);
Credentials cred = (Credentials) session.getAttribute(AuthController.USER_CREDENTIALS);
在我开发的Tomcat实例中似乎工作得很好,但在另一个Tomcat 6实例中,在负载平衡的环境中,MaxInactivinteval似乎没有得到尊重

更新:我的意思是,如果用户处于非活动状态(没有新请求)大约10秒钟,则用户会话将过期


代码中没有设置maxInactiveInteval的其他位置。是什么导致了这种行为?

根据对该问题的评论,您的具体问题是loadbalanced Tomcat实例几乎立即终止会话。设置/更改
setMaxInactiveInterval()
根本没有帮助


您首先需要通过使用和/或跟踪cookie通信量来排除客户机的可疑性。如果cookie通信看起来正常(即客户端在所有后续请求中返回正确的会话cookie),则loadbalancer或Tomcat配置将被破坏。这不是编程错误,而是服务器管理员的食物

你的问题令人困惑。
setMaxInactiveInterval()
的作用与您认为的不同。它的功能基本上与
完全相同,只允许在每个会话的基础上对其进行更改,因此,您在那里设置完全相同值的行是完全多余的。“你所看到并试图解决的问题到底是什么?”BalusC指出,我认为时间是会话过期之前的分钟数,但它似乎是在请求之间允许会话空闲的时间,然后会话才会失效。是的,这是正确的。我看到你已经编辑了你的问题,以消除这种混乱。但我还是不明白你的具体问题。你说的“似乎不受尊重”到底是什么意思?你什么时候/在哪里设置这个值,会发生什么情况?@BalusC cool,我刚刚更新了。好的,那么loadbalancer或Tomcat配置被破坏了。这是服务器管理员的食物。或者是否有其他网络应用程序在同一环境下运行良好?