Apache代理插件处理SESSION Cookie中的JVM ID

时间:2014-02-12 07:07:36

标签: apache2 weblogic jsessionid

我试图了解JSESSION Cookie中存在的JVMID与受管服务器的ipaddr:端口之间的映射。下面几个问题 -

  1. 谁生成JVMID以及apache插件如何知道给定节点的JVMID。它是否从服务器的响应中恢复(可能是动态服务器列表的一部分?)。

  2. 如果我们使用包含JVMID的JSESSION cookie向apache发送请求,并且apache尚未处理任何请求,那么行为是什么?

  3. 假设apache维护JVMID和节点地址之间的本地映射,它是如何更新的? (特别是在apache重启或托管服务器重启的情况下)

1 个答案:

答案 0 :(得分:1)

1)JVM ID从每个Weblogic服务器生成并附加到JSESSIONID。

Apache记录单个服务器HASH并将其映射到相应的受管服务器,并且能够将其发送到与先前请求相同的weblogic受管服务器。

以下是来自http://www.bea-weblogic.com/weblogic-server-support-pattern-common-diagnostic-process-for-proxy-plug-in-problems.html

的示例日志
Mon May 10 13:14:40 2004 getpreferredServersFromCookie: -2032354160!-457294087
Mon May 10 13:14:40 2004 GET Primary JVMID1: -2032354160
Mon May 10 13:14:40 2004 GET Secondary JVMID2: -457294087
Mon May 10 13:14:40 2004 [Found Primary]: 172.18.137.50:38625:65535
Mon May 10 13:14:40 2004 list[0].jvmid: -2032354160
Mon May 10 13:14:40 2004 secondary str: -457294087
Mon May 10 13:14:40 2004 list[1].jvmid: -457294087
Mon May 10 13:14:40 2004 secondary str: -457294087
Mon May 10 13:14:40 2004 [Found Secondary]: 172.18.137.54:38625:65535
Mon May 10 13:14:40 2004 Found 2 servers

2)如果插件也安装在新的Apache上,那么当Apache启动时它会ping所有可用的Weblogic服务器,将它们报告为Live或Dead(我在这里使用的术语,而不是官方) - 在执行该运行状况检查时,它会获取每个可用Weblogic的JVMID。之后,它将收到带有预先存在的JVMID的第一个请求 - 它可以正确指向。

3)有一些类似DynamicServerList ON的参数 - 如果它是On它继续轮询Healthy Weblogics,如果OFF,则它只将它发送到硬编码列表。所以如果On - 那么它是非常动态的