1

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

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

AppServer 是 Glassfish 3.1 (Java EE 6)。

4

1 回答 1

2

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

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

(顺便说一句,如果您使用 Derby 网络服务器,则 Derby 数据库只能由多个进程共享。多个应用程序服务器进程不能同时打开一个 Derby 数据库。)

于 2013-06-05T14:07:58.350 回答