首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JBoss集群上的JBoss

JBoss集群上的JBoss
EN

Stack Overflow用户
提问于 2014-10-30 12:33:46
回答 1查看 421关注 0票数 1

我们得到了这样的例外:

TimeoutException: JBAS010213:无法获取锁默认主机/.

我们在我们的web应用程序中使用这个PhaseListener来捕获ajax请求的会话超时并重定向到索引(我们怀疑这可能是相关的,但我们不知道):

代码语言:javascript
复制
public class SessionExpirationPhaseListener implements PhaseListener {

@Override
public PhaseId getPhaseId() {

    return PhaseId.RESTORE_VIEW;

}

@Override
public void beforePhase(PhaseEvent event) {
}

@Override
public void afterPhase(PhaseEvent event) {
    FacesContext context = FacesContext.getCurrentInstance();
    HttpServletRequest httpRequest = (HttpServletRequest) context.getExternalContext().getRequest();
    if (httpRequest.getRequestedSessionId() != null && !httpRequest.isRequestedSessionIdValid()) {
        String facesRequestHeader = httpRequest.getHeader("Faces-Request");
        boolean isAjaxRequest = facesRequestHeader != null && facesRequestHeader.equals("partial/ajax");
        // navigate to home page only for ajax requests
        if (isAjaxRequest) {
            ConfigurableNavigationHandler handler = (ConfigurableNavigationHandler) context.getApplication().getNavigationHandler();
            handler.performNavigation("home");
        }
    }
}

}

我们正在运行一个具有两个节点(mod_cluster + apache)的JBoss集群,并启用了SSO。你们知道会出什么问题吗?或者至少给我们指明正确的方向?

谢谢,问候。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-31 14:49:48

我认为这里的问题是两个节点试图访问同一个会话,其中一个节点正在处理传入请求,而第二个节点正在执行会话过期。

在ajax调用中正在发送Check cookie,一个可能的问题是不属于会话所有者的节点中的阶段侦听器的执行。

编辑:

存在此缺陷可能与此问题有关:bug.cgi?id=993041

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

https://stackoverflow.com/questions/26653125

复制
相关文章

相似问题

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