我正在 Amazon Web Services 基础设施上的 jBoss AS7 中使用 Seam 开发 Web 应用程序。我已经实现了自动化来扩展基础设施,但我需要了解有关 AS7 配置的两件事:
1) 如何配置 AS7 在不同服务器上共享用户 session ?我需要像此链接一样配置集群 https://docs.jboss.org/author/display/AS71/AS7+Cluster+Howto
2)有没有办法通过代码来统计单个AS7中打开的 session 数? 我需要创建 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
}
}
关于java - 通过代码计算 jBoss AS7 session 数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11784829/