0

我有一个带有定时方法的单例 EJB bean,它每分钟将统计信息保存到数据库一次。bean 在每个集群节点上单独保存统计信息,因此将其保存在每个节点上也很重要。

我担心的是,由于 EJB Timer 服务共享一个数据库,它只会在一个集群节点上运行保存方法,而不是在所有节点上运行。这意味着并非所有统计信息都保存到数据库中。文档http://docs.oracle.com/cd/E18930_01/html/821-2418/beahw.html似乎没有提及任何内容。

有人知道它是如何工作的吗?

4

1 回答 1

1

如果你用@Schedule(..., persistent=true) 声明定时器,你会得到一个存储在定时器数据库中的集群定时器(可以迁移),所以它只会在一个节点上运行。

如果你用@Schedule(..., persistent=false) 声明定时器,你会得到一个没有存储在定时器数据库中的节点定时器(它不能被迁移),所以它会在每个节点上被调用。

于 2015-01-29T20:30:45.293 回答