我试图了解JSESSION Cookie中存在的JVMID与受管服务器的ipaddr:端口之间的映射。下面几个问题 -
谁生成JVMID以及apache插件如何知道给定节点的JVMID。它是否从服务器的响应中恢复(可能是动态服务器列表的一部分?)。
如果我们使用包含JVMID的JSESSION cookie向apache发送请求,并且apache尚未处理任何请求,那么行为是什么?
假设apache维护JVMID和节点地址之间的本地映射,它是如何更新的? (特别是在apache重启或托管服务器重启的情况下)
答案 0 :(得分:1)
1)JVM ID从每个Weblogic服务器生成并附加到JSESSIONID。
Apache记录单个服务器HASH并将其映射到相应的受管服务器,并且能够将其发送到与先前请求相同的weblogic受管服务器。
的示例日志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 - 那么它是非常动态的