在集群中的每个节点上运行EJB计时器

时间:2013-06-04 11:52:30

标签: java-ee-6 glassfish-3 ejb-3.1

是否可以在群集的每个节点上运行EJB Timer(@Schedule)?将计时器声明为非持久性是否足够?我是否需要一个可以被两个节点访问的数据库,还是可以使用内部derby数据库?

此要求背后的用例是刷新每个节点的内存中的一些数据。

AppServer是Glassfish 3.1(Java EE 6)。

1 个答案:

答案 0 :(得分:2)

是的,你想要一个非持久性计时器。根据EJB 3.1规范:

  

可以通过编程方式或自动创建非持久性计时器   (使用@Schedule或部署描述符)。用于自动   非持久性计时器,容器创建 new 非持久性计时器   应用程序初始化期间的计时器每个 JVM   容器是分发的。

(另外,如果使用Derby网络服务器,Derby数据库只能由多个进程共享。多个应用程序服务器进程无法同时打开Derby数据库。)