-1

我正在使用集群中的两个服务器实例进行会话复制。

会话 id 没有被复制到第二台服务器,因此它总是创建一个新的,我打开的应用程序出错并被关闭。如何处理服务器实例的故障转移,以便用户不会知道服务器实例是否关闭。这是我在 weblogic.xml 中使用的设置

    <?xml version="1.0" encoding="ISO-8859-1"?>

      <weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app">
         <session-descriptor>
       <session-param>
      <param-name>URLRewritingEnabled</param-name>
        <param-value>true</param-value>
       </session-param>
        <session-param>
        <param-name>PersistentStoreType</param-name>
       <param-value>replicated</param-value>
     </session-param>
     </session-descriptor>

 <context-root>@CONTEXT_ROOT@</context-root>
  </weblogic-web-app>
4

1 回答 1

0

既然您知道直接访问应用服务器并不能缓解似乎缓解您的会话 id 问题,您需要进行更深入的调试:

  1. 在 Firefox 中安装 Firebug ( https://getfirebug.com/ )
  2. 在 Firefox 中访问您的网站
  3. 在 Firefox 中打开 Firebug(并确保 Firefox 的“网络”选项卡(可能是灰色的)已启用)
  4. 登录您的网站
  5. 查看 firebug 中的 Net 选项卡并展开请求的加号。
  6. 查看请求标头部分——您是否在 cookie 字段中看到任何类似于 JSESSIONID 的内容?如果是这样,当您导航到站点上的其他页面时,JSESSIONID 是保持不变还是会发生变化?

我附上了使用 Firebug 查看设置并在您登录到 weblogic 管理控制台进行比较时重新发送的 cookie 的屏幕截图(而不是 ADMINCONSOLESESSION,您会看到 JSESSIONID 作为 cookie 键)

在此处输入图像描述

于 2012-05-15T13:42:23.643 回答