1

我在 Weblogic 集群中部署了一个购物车应用程序,其中包含 2 个托管服务器。在 weblogic.xml 中,我包含了以下参数:

**<!-- Insert session descriptor element here -->
<session-descriptor>
  <persistent-store-type>replicated_if_clustered</persistent-store-type>
</session-descriptor>**

复制在购物车中购买的项目。我的疑问是,当我使用 firebug 工具跟踪请求 ID 时。我看到每个托管服务器有两个不同的请求 ID。

请求 1:http://xx.xx.xx.xx:9003/shoppingcart/viewshoppingcart *请求 2:http://xx.xx.xx.xx:9004/shoppingcart/viewshoppingcart *

  • 请求一个标头:

Host 1xx.xx.xx.xx:9003 User-Agent Mozilla/5.0 (Windows NT 6.0; rv:11.0) Gecko/20100101 Firefox/11.0 Accept text/html,application/xhtml+xml,application/xml;q=0.9, / ;q=0.8 Accept-Language en-gb,en;q=0.5 Accept-Encoding gzip, deflate Connection keep-alive Cookie ADMINCONSOLESESSION=5183QZ1Mjy12hZR21cW6CbVyfRj5yh0NThfXJQ2TlkyM0Fv6BJlx!42613329; JSESSIONID=G130QZ8P7fhstLQvFs111J2XXpn33JMsvRF7tT1zpqfYwnXSKBPH!-1346249615!1012537584

  • 请求两个标头:

主机 xx.xx.xx.xx:9004 用户代理 Mozilla/5.0 (Windows NT 6.0; rv:11.0) Gecko/20100101 Firefox/11.0 接受 text/html,application/xhtml+xml,application/xml;q=0.9, / ;q=0.8 Accept-Language en-gb,en;q=0.5 Accept-Encoding gzip, deflate Connection keep-alive Cookie ADMINCONSOLESESSION=5183QZ1Mjy12hZR21cW6CbVyfRj5yh0NThfXJQ2TlkyM0Fv6BJlx!42613329; JSESSIONID=G130QZ8P7fhstLQvFs111J2XXpn33JMsvRF7tT1zpqfYwnXSKBPH!1012537584!-1346249615 缓存控制 max-age=0

在两个标头中,JSESSIONID 不同,但 ADMINCONSOLESESSION ID 相同。

这个 ADMINCONSOLESESSION ID 是什么意思?为什么我得到不同的 JSESSION ID?

例子:

jsessionid = g130qz8p7fhstlqvfs111j2xxpn33jmsvrf7tt1zpqfywnxskbph!-1346249615!1012537584 jsessionid = g130qz8p7fhstlqvfs11j2xxpn33jmsvrf7tt1zpqfywnxskbph!1012537584!-1346249615

而在这个会话 ID 中,为什么这个丢失的部分单独修改了?JSESSIONID 有可用的格式吗?

1346249615!1012537584 和 1012537584!-1346249615

4

1 回答 1

3

ADMINCONSOLESESSION是 WebLogic 控制台的 cookie 名称

会话 cookie的格式为:

  • sessionid!primary_server_id!secondary_server_id

在我看来,您发布的 jsession id 显示了您的会话复制机制的正确行为。

正如预期的那样,两个 jsessionid 中的sessionid部分是相同的。

最初的 JSESSIONID 是 G130QZ8P7fhstLQvFs111J2XXpn33JMsvRF7tT1zpqfYwnXSKBPH!-1346249615!1012537584显示主要主机服务器 id 是-1346249615和辅助主机服务器 id 是1012537584

会话复制后,JSESSIONID 为 G130QZ8P7fhstLQvFs111J2XXpn33JMsvRF7tT1zpqfYwnXSKBPH!1012537584!-1346249615表示主服务器主机 ID 为1012537584,辅助主机为-1346249615

假设 id -1346249615属于托管服务器 A并且1012537584属于托管服务器 B。最初,您对服务器的请求由托管服务器 A 提供服务,在会话复制之后,它们由托管服务器 B 提供服务。

我希望这有帮助。

于 2012-08-22T17:58:11.437 回答