我有一个带有定时方法的单例EJB bean,它每分钟就会向数据库保存一次统计信息。 bean在每个群集节点上单独保存统计信息,因此将它保存在每个节点上也很重要。
我担心的是,由于EJB Timer服务正在共享一个数据库,它只会在其中一个集群节点上运行save-method而不是所有集群节点。这意味着并非所有统计信息都保存到数据库中。文档http://docs.oracle.com/cd/E18930_01/html/821-2418/beahw.html似乎没有提及任何内容。
任何人都知道它是如何运作的?
答案 0 :(得分:1)
如果使用@Schedule(...,persistent = true)声明计时器,您将获得存储在计时器db(可以迁移)中的集群计时器,因此它只能在一个节点中运行。
如果使用@Schedule(...,persistent = false)声明计时器,您将获得一个未存储在计时器db中的节点计时器(无法迁移),因此将在每个节点上调用它