是否可以在群集的每个节点上运行EJB Timer(@Schedule)?将计时器声明为非持久性是否足够?我是否需要一个可以被两个节点访问的数据库,还是可以使用内部derby数据库?
此要求背后的用例是刷新每个节点的内存中的一些数据。
AppServer是Glassfish 3.1(Java EE 6)。
答案 0 :(得分:2)
是的,你想要一个非持久性计时器。根据EJB 3.1规范:
可以通过编程方式或自动创建非持久性计时器 (使用
@Schedule
或部署描述符)。用于自动 非持久性计时器,容器创建 new 非持久性计时器 应用程序初始化期间的计时器每个 JVM 容器是分发的。
(另外,如果使用Derby网络服务器,Derby数据库只能由多个进程共享。多个应用程序服务器进程无法同时打开Derby数据库。)