我正在使用Amazon Web Services基础设施上的jBoss AS7中的Seam开发Web应用程序。我已经实现了自动化以扩展基础结构,但是我需要学习有关AS7配置的两件事:

1)如何配置AS7在不同服务器上共享用户会话?我需要像这样的链接配置群集
https://docs.jboss.org/author/display/AS71/AS7+Cluster+Howto

2)是否可以通过代码来计数单个AS7中的打开会话?
我需要为AWS基础架构创建一个自动缩减规模,以在不中断用户工作的情况下关闭EC2计算机。

最佳答案

我认为您可以使用HttpSessionListener并在sessionCreated的外部数据库中增加一个计数器,并从sessionDestroyed的同一数据库中减少。

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import javax.servlet.http.HttpSession;

public class SessionCounter implements HttpSessionListener {

    public SessionCounter() {
    }

    public void sessionCreated(HttpSessionEvent event) {
        //@TODO increment database value
    }

    public void sessionDestroyed(HttpSessionEvent event) {
        //@TODO decrement database value
    }

    public int getActiveSessionNumber() {
        //@TODO return database value
    }
}

10-08 13:07