2010-08-09 104 views
0

我有一个关于会话管理的问题。这是场景。会话管理 - Websphere应用服务器

在同一网络上有3组用户。有一个J2EE应用程序设置为在60分钟后结束用户的会话。这些组是A,B和C.现在,组A,B和C都登录到J2EE应用程序并开始使用它。 A组用户可以毫无问题地使用该应用程序。 B组和C组尽管被踢出了不同时间,但都在60分钟的设定时间之前。现在来自A组的用户转到B组的PC。 B组用户使用他们的AD凭证登录到他们的PC,然后A组用户登录到J2EE应用程序。过了一段时间,在60分钟的会话时间之前,A组用户的会话过早结束。

还在我身边吗?但愿如此。

现在,B组用户转到A组用户的PC并执行上述操作。 A组用户使用他们的AD凭证登录到他们的PC,B组用户登录到J2EE应用程序。 B组用户没有超时问题,并且在会话结束的60分钟设置时间之前不会被踢出。

Whe!因此,看起来J2EE应用程序不会终止用户的会话,因为B组用户在登录到A组用户PC时没有问题。

现在,有人能够解释如何发生这种情况?我在想应用程序服务器(Websphere App Server 6.1)可能被配置为做这样的事情,但我不是一个websphere管理员。

任何想法或建议,我可以尝试解决这个问题将不胜感激。另外,请问任何问题,因为我知道在我的解释中可能会遗漏一些事情。

谢谢!

+0

遵循了相同的路径到应用程序的所有用户? – 2010-08-09 18:12:22

+0

是的,所有用户都遵循相同的路径应用程序。 – Ruepen 2010-08-09 19:36:02

+0

你使用cookies吗? – 2010-08-10 21:43:15

回答

0

您是否在代码中设置了HttpSession.setMaxInactiveInterval(int secs)。这会覆盖WebSphere中的其他设置。也许你有一个正在设置的随机值?

+0

我检查了HttpSession。setMaxInactiveInterval(int secs),它只在1处使用,并且该值不是随机值。它设置为3600秒(60分钟)。 – Ruepen 2010-08-10 13:05:19

0

除了尝试罗曼提供的建议也尝试这一点。您可以打印HTTPSession的内容(及其属性)并查看这些值的含义。

使用HTTPSessionListener,会话被创建和销毁时会收到通知。

这会告诉你会话何时被破坏。

应用程序中的某些东西很可能会触发它。

很难说出什么是可能的问题,我们可以采取这些方法的初步尝试。

HTH Manglu

+0

我将尝试您在我们的生产环境下一次计划部署期间提出的建议。但是,您如何解释只发生在B组和C组的事实,但是A组在60分钟之前没有被踢开?他们都碰到同一个应用程序。请再次阅读我的详细信息,您会注意到,当B组用户使用A组用户的PC登录到应用程序时,他在60分钟之前未被踢出。这不像是网络相关的吗? A组的PC配置方式可能有些不同吗? – Ruepen 2010-08-10 13:14:11

+0

@Ruepen, 我会检查HTTP头并查看在每次调用中发送的LTPA令牌和HTTP SessionID,并查看HTTPSessionID何时不再由服务器发回。 这有效地产生了您被服务器踢出的印象。通过查看服务器端,并寻找来自A组PC的会话ID,您将能够得出合理的结论。 网络不应该有选择地删除一些HTTP头信息。我并不是说网络不是罪魁祸首,但它不太可能。 – Manglu 2010-08-11 00:22:28