Cluster
WebLogic 集群,從 JSESSIONID cookie 中確定節點
我們正在執行一個包含三個託管伺服器(節點)的 WebLogic 10.3.4 集群。我們不使用會話粘性,但跨集群的會話複製和一切工作正常。然而,在嘗試測試我們的 Web 應用程序時,我們會定期嘗試找出使用者目前在哪個節點上(以便找到正確的日誌文件)。
JSESSIONID
cookie 具有以下格式:sessionid!primary_server_id!secondary_server_id
給定會話 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。