通过MongoDB防止Jetty 8和复制会话的节点会话超时

时间:2012-11-21 21:50:51

标签: nosql jetty session-timeout session-replication

我正在使用Jetty 8,目前在循环负载均衡器后面设置并运行了两个实例。我已将其配置为使用MongoDB进行会话复制。它有两个例外,效果很好。我将在这里包括一个,在另一个问题中包括另一个。

  1. 可以使其中一个节点上的会话保持活动状态,而另一个节点上的同一会话超时。一旦你点击超时节点,行为就像会话已经过期一样,即使在另一个节点上有来自用户的活动。
  2. 有没有人有任何建议?我即将开始深入研究jetty-nosql的实现,但如果有人能帮我节省一些时间,我会很高兴。

1 个答案:

答案 0 :(得分:0)

事实证明,上面指出的行为是由于nosqlSession管理器中的错误造成的。从数据库读取会话时,它不会更新上次访问的时间。因此,如果在会话超时期限内未访问节点,则无论是否访问任何其他节点,它都将使会话无效。我已提交此错误报告:https://bugs.eclipse.org/bugs/show_bug.cgi?id=397193

我们通过对错误中指示的文件进行自定义修改来修复它,以便在从数据库刷新会话时使用存储在数据库中的访问时间更新会话的访问时间。