查看我自己的应用程序中随机生成的一些 Weblogic JSessionID
BrYx4hyPZ4VSP9Wo4eU0OrqmhXMLFONbRHnpLFwRKZ9MSaf6wvYj!-314662473
和
BrYiFED29itaC4EBpWYM8RKVQQauHkvnTsA2OAKUPZXVc9oUD5fB!-784323496.
现在,如果您注意到第一个之后的会话 id 部分!即314662473
和784323496
。
这个数字是Weblogic 提供给正在运行的 JVM 即正在运行的 Weblogic 服务器的唯一标识符。
如果您的应用程序中有多个服务器,Weblogic 知道如何使用作为会话 ID 一部分的 9 位 JVM 编号将您的会话路由回正确的服务器。
每次重新启动 weblogic 服务器时,它都会生成一个新的 JVM id,并在该 weblogic 服务器运行时使用它。因此,对该服务器的任何点击都将在会话 ID 结束时具有相同的 ID。
会话 ID的格式为:
JSESSIONID=SESSION_ID!PRIMARY_JVMID_HASH!SECONDARY_JVM_HASH!CREATION_TIME
因此,如果主服务器不可用,它将尝试跳转到辅助服务器,并且如果您启用了会话复制- 那么会话数据可以恢复。如果您在本地只运行一个服务器,那么格式很简单
JSESSIONID=SESSION_ID!PRIMARY_JVMID_HASH!CREATION_TIME
关于某些时候它没有出现,我已经看到它通常取决于浏览器是否在地址栏中显示 sessionid