2010-12-02 86 views
4

我们在2个受管服务器群集中设置了weblogic。请求会通过负载平衡器(据推测)配置为粘性会话。但是,我们的请求会在托管节点之间发生反弹,就好像粘性会话未配置一样。Weblogic会话Cookie正在更改主服务器和辅助服务器

我注意到的一件事是,JSESSIONID cookie偶尔会交换主服务器和辅助服务器散列。它们应该在用户会话的整个生命周期内保持不变。

E.g.我们看到

Request 1, JSESSIONID=ABCDEFG...!SERVER1HASH!SERVER2HASH 
Request 2, JSESSIONID=ABCDEFG...!SERVER2HASH!SERVER1HASH 
Request 3, JSESSIONID=ABCDEFG...!SERVER1HASH!SERVER2HASH 

有时,我们甚至看到了哈希的被设置为“无”,因为在集群该成员不再有:

Request 4, JSESSIONID=ABCDEFG...!SERVER1HASH!NONE 

有谁知道为什么主辅助服务器会如此切换?

+0

这将是一个问题,在负载平衡器,它不会或不能识别该会话粘滞服务器1,并将其切换到服务器2.在LB和Weblogic之间是否有任何Apache或其他Web服务器插件? – JoseK 2010-12-03 09:27:28

回答

3

在我们过去遇到过的情况下,这是负载平衡器的一个问题,它没有或无法将会话识别为与服务器1粘在一起,并将其切换到服务器2。在交通繁忙时更为明显。

有一次(大约2003年的Weblogic 6.1),这是因为Cluster multicast address是模式x.0.0.1

很长的调查与BEA人后,这被认为是源问题。这导致public BEA docs being updated明确说明

不要使用任何x.0.0.1组播 地址,其中x是0到9之间, 包容

0

我们也有这个问题,当JSESSIONID当另一个Web应用程序联机时cookie已更改(在weblogic.xml中),但Apache Weblogic插件使用默认的WLCookieName。