在不同的应用程序服务器上生成新的JSESSIONID

时间:2014-08-28 14:42:00

标签: java apache session jboss ejb

我的系统在多个apache服务器后面有多个jboss(4.2.3)服务器。

在其中一个jboss服务器出现故障的情况下,我们仍会让用户使用这些服务器的会话进入,但是他们会反弹#34;由于JSESSIONID中的应用程序服务器ID导致服务器周围,导致apache将请求发送到每个请求的随机服务器,导致会话超时错误。

我最初的想法是,如果我们检测到会话实际上是针对不同的服务器(即session.invalidate()),则在应用程序中创建拦截器以使会话无效 但这并不会导致生成新的JSESSIONID(即使使用此处描述的修复https://issues.jboss.org/browse/JBAS-4436

我的下一个想法是创建一个阀门来执行相同的工作,但是在Request而不是HttpServletRequest上,但是我无法找到将ValveBase添加到jboss 4.2.3的库(而且我是' m甚至不确定阀门是否由4.2.3支持

是否有:

a)我在上述两个想法之一中错过了任何工作 要么 b)我还没有想过要解决这个问题的更好的想法? (我想对会议进行聚类,但由于基础设施问题,目前无法进行会议)

感谢。

1 个答案:

答案 0 :(得分:0)

在Apache中使用Session Stickyness,因此在它死之前不会切换到其他应用程序服务器。