Weblogic 通过负载平衡器时从应用程序注销

Weblogic 通过负载平衡器时从应用程序注销,weblogic,Weblogic,当用户登录到我们的应用程序,然后单击应用程序中的链接时,他们将注销并返回登录屏幕。有时需要点击几个链接才能返回登录屏幕。我们不确定为什么会发生这种情况 我们认为,可能是用户登录到一个weblogic服务器,然后负载平衡器在后续请求中将他们放在另一个weblogic服务器上,而该服务器没有会话信息,因此没有身份验证信息,并将他们踢回登录屏幕。我们在日志中看到BEA-000117错误,文档中说这意味着“具有旧版本会话数据的服务器试图损坏会话数据。” 当我们不通过负载平衡器,而是直接点击weblogi

当用户登录到我们的应用程序,然后单击应用程序中的链接时,他们将注销并返回登录屏幕。有时需要点击几个链接才能返回登录屏幕。我们不确定为什么会发生这种情况

我们认为,可能是用户登录到一个weblogic服务器,然后负载平衡器在后续请求中将他们放在另一个weblogic服务器上,而该服务器没有会话信息,因此没有身份验证信息,并将他们踢回登录屏幕。我们在日志中看到BEA-000117错误,文档中说这意味着“具有旧版本会话数据的服务器试图损坏会话数据。”

当我们不通过负载平衡器,而是直接点击weblogic服务器时,我们可以保持登录状态,并且不会被踢回登录屏幕。这似乎表明问题局限于负载平衡器和weblogic之间发生的事情,而不是会话日期复制之类的错误。负载平衡器应该被配置为正确地执行粘性会话,但我们还没有能够验证这一点

有什么想法吗

注意,我们的配置是:

  • 我们在2服务器weblogic集群前面有一个负载平衡器
  • 一个应用程序(捆绑成多场战争的ear)部署到集群
  • 如果在weblogic.xml文件中打开了\u clustered,则复制\u(我们没有尝试关闭此功能)
  • 当我们到达终点时

在负载平衡器上启用粘性会话,以便来自用户的所有请求都由应用层上的同一实例提供服务。设置因您使用的负载平衡器类型而异。

在LB和WL群集之间是否有任何web服务器?您是否使用WLProxy插件或类似插件进行负载平衡?LB和WL群集之间没有web服务器。我相信LB配置为使用set-cookie2指令注入自己的cookie来管理粘性sesion。