2012-08-02 78 views
1

我在Amazon Web Services基础结构上的jBoss AS7中使用Seam开发Web应用程序。我已经实现了自动化,以扩大基础设施,但我需要了解有关AS7配置的两件事:通过代码计算jBoss AS7会话

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

2)有没有一种方法可以计算单个AS7中的打开会话的代码? 我需要创建AWS基础架构的自动缩减功能,以便在不中断用户工作的情况下关闭EC2计算机。

回答

0

我想你可以使用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 
    } 
}