2010-12-02 85 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。