【发布时间】:2013-06-04 11:52:30
【问题描述】:
是否可以在集群的每个节点上运行 EJB Timer (@Schedule)?将计时器声明为非持久性就足够了吗?我需要一个可以被两个节点访问的数据库还是可以使用内部的 derby 数据库?
这个需求背后的用例是刷新每个节点内存中的一些数据。
AppServer 是 Glassfish 3.1 (Java EE 6)。
【问题讨论】:
标签: java-ee-6 glassfish-3 ejb-3.1
是否可以在集群的每个节点上运行 EJB Timer (@Schedule)?将计时器声明为非持久性就足够了吗?我需要一个可以被两个节点访问的数据库还是可以使用内部的 derby 数据库?
这个需求背后的用例是刷新每个节点内存中的一些数据。
AppServer 是 Glassfish 3.1 (Java EE 6)。
【问题讨论】:
标签: java-ee-6 glassfish-3 ejb-3.1
是的,您需要一个非持久性计时器。根据 EJB 3.1 规范:
可以以编程方式或自动创建非持久性计时器 (使用
@Schedule或部署描述符)。对于自动 非持久定时器,容器创建一个 new 非持久的 每个 JVM 的应用程序初始化期间的计时器 容器已分发。
(顺便说一句,如果您使用 Derby 网络服务器,则 Derby 数据库只能由多个进程共享。多个应用程序服务器进程不能同时打开一个 Derby 数据库。)
【讨论】: