首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >weblogic jsessionid

weblogic jsessionid
EN

Stack Overflow用户
提问于 2011-06-21 18:13:33
回答 2查看 27.2K关注 0票数 10

我在本地运行WebLogic10.3,并有一个关于它生成的sessionId的问题。当我打印session.getId()时,我看到类似这样的东西:

BBp9TAACMTglQ2TDFAKR4tpyXg73LZDQJ2PtT9x8htG1tWY122aa!869187422!1308677666322

这些感叹号是什么?下面是什么,特别是第二对:!1308677666322?看起来,服务器有时会追加,有时不会。我相信,如果我第二次使用同一个浏览器登录到我的应用程序,那么weblogic就会追加它。这饼干有什么关系吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-22 10:36:58

查看从我自己的应用程序中随机生成的Weblogic

代码语言:javascript
复制
BrYx4hyPZ4VSP9Wo4eU0OrqmhXMLFONbRHnpLFwRKZ9MSaf6wvYj!-314662473

代码语言:javascript
复制
BrYiFED29itaC4EBpWYM8RKVQQauHkvnTsA2OAKUPZXVc9oUD5fB!-784323496.

现在,如果您注意到会话id 在第一个!之后的部分,即314662473784323496

这个数字是Weblogic提供给正在运行的JVM的唯一标识符,即运行中的Weblogic服务器。

如果您的应用程序中有多个服务器,Weblogic知道如何使用会话ID中的9位JVM编号将会话路由回正确的服务器。

每次重新启动weblogic服务器时,只要weblogic服务器运行,它都会生成一个新的JVM id并使用它。因此,对该服务器的任何点击都将在会话ID的末尾具有相同的ID。

format of the session ID是:

JSESSIONID=SESSION_ID!PRIMARY_JVMID_HASH!SECONDARY_JVM_HASH!CREATION_TIME

因此,如果主服务器不可用,它将尝试跳转到辅助服务器,如果启用了会话复制,则可以恢复会话数据。如果您只在本地上运行一台服务器,则格式很简单

JSESSIONID=SESSION_ID!PRIMARY_JVMID_HASH!CREATION_TIME

对于某些时候它没有出现,我已经看到它通常取决于浏览器是否在地址栏中显示了sessionid。

票数 23
EN

Stack Overflow用户

发布于 2014-06-18 15:15:59

WebLogic服务器使用这些in来维护WebLogic集群内存中复制模型中的HTTP会话亲和性。

对于那些启用了HTTP复制(在weblogic.xml部署描述符中默认禁用)的Web应用程序,WebLogic将在集群中保留HTTP会话的主副本和备份副本。

为了避免集群开销,WebLogic代理插件(部署在Web层中)解析会话cookie,并将每个请求重定向到承载主副本的WLS。如果托管主会话的托管服务器出现故障或开销,代理插件将请求重定向到HTTP会话所在的实例。

代理插件将跟踪所有WebLogic集群成员的动态列表作为对(JVM ID/IP:端口),以适当地重定向每个请求。

如果您的应用程序不启用内存中的复制功能,那么cookie将只包含您的HTTP Sesion所在的JVM ID (主副本和唯一副本)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6429990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档