我正在使用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
}
}