Session 过时会话数据-websphere

Session 过时会话数据-websphere,session,websphere,session-replication,Session,Websphere,Session Replication,我在Websphere 6中的http会话中有一个过时的属性,可能与内存中的会话复制有关 步骤: 对象A.0-放入ID为“ABC”的会话中 从会话中删除A.0 对象A.1(新实例)-放入ID为“ABC”的会话中 从会话中检索ID为“ABC”的对象-结果:A.1(正确) 执行Servlet转发或重定向(在两个函数上都可以看到问题) 从会话中检索“ABC”-结果:A.0,从会话中删除的对象 注- 步骤1-5中使用的相同会话对象(哈希代码/会话ID)在中使用 跨2个JVM的内存复制(单个群集) 步骤

我在Websphere 6中的http会话中有一个过时的属性,可能与内存中的会话复制有关

步骤:

  • 对象A.0-放入ID为“ABC”的会话中
  • 从会话中删除A.0
  • 对象A.1(新实例)-放入ID为“ABC”的会话中
  • 从会话中检索ID为“ABC”的对象-结果:A.1(正确)
  • 执行Servlet转发或重定向(在两个函数上都可以看到问题)
  • 从会话中检索“ABC”-结果:A.0,从会话中删除的对象
  • 注-

    • 步骤1-5中使用的相同会话对象(哈希代码/会话ID)在中使用 跨2个JVM的内存复制(单个群集)
    • 步骤2和步骤5之间的持续时间总计为4秒
    • 在此期间,没有其他外部线程访问该会话
    • 仅注意1个特定用例;在
      其他用例
    以前有人看到过这样的情况,即从WebSphereApplicationServer返回过时的数据吗

    谢谢


    Ian.

    在转发/重定向之前,是否将更改的对象显式写回会话?至少在某些版本的WebSphere中,在某些配置中,您必须这样做以确保更改“已提交”


    (如果我找到了一个明确的参考,我会更新我的答案。)

    伊恩,你明白了吗。我无法理解您使用带有WebSphere插件的web服务器的步骤(或您所说的问题)?只有在您实际交换了集群成员的情况下,复制才会成为一个因素。如果您使用的是WebSphere插件,那么只要会话处于活动状态,就不应该这样做。您是否自定义了任何会话设置?比如,您的会话管理>自定义调优参数是什么?您的“显式”是什么意思?在重定向之前,我在HttpSession上做了一个“setAttribute”,但没有做任何其他事情……这就是我的意思。如果您
    getAttribute()
    并更改了对象的内容,但又不
    setAttribute()
    返回,则可能会出现问题。但显然这不是你的问题。