Cluster

WebLogic 集群,從 JSESSIONID cookie 中確定節點

  • October 26, 2015

我們正在執行一個包含三個託管伺服器(節點)的 WebLogic 10.3.4 集群。我們不使用會話粘性,但跨集群的會話複製和一切工作正常。然而,在嘗試測試我們的 Web 應用程序時,我們會定期嘗試找出使用者目前在哪個節點上(以便找到正確的日誌文件)。

JSESSIONIDcookie 具有以下格式:

sessionid!primary_server_id!secondary_server_id

官方 WLS 集群文件中指定的那樣

給定會話 cookie 中的伺服器 ID,有什麼方法可以確定目前集群節點?

我知道有一些替代方法,比如 * 日誌聚合 * 在我們的頁面模板中渲染一個散列,它允許辨識和可能的其他。但如果可能的話,我想找到一種微創解決方案,因為軟體設置和應用程式碼的任何更改都可能被證明是困難的。

不直接在 Weblogic,AFAIK 中。

如果您在 Weblogic 集群前面有一個 Apache Web 伺服器(或類似代理),它會記錄單個伺服器 HASH 並將其映射到託管伺服器,並且能夠將其發送到與先前請求相同的 weblogic 託管伺服器。

舊 BEA 頁面所述,您可以啟用調試日誌記錄:

Debug ALL
DebugConfigInfo ON
WLLogFile /tmp/wlproxy.log

範例日誌內容:

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

此資訊也可在 MOS 上找到;搜尋文件 780007.1。

引用自:https://serverfault.com/questions/351515