0
我有一个单独的EJB bean,它具有一个每分钟一次将统计数据保存到数据库的定时方法。该bean在每个群集节点上分别保存统计信息,因此将它保存在每个节点上也很重要。为什么必须EJB定时器在集群中共享数据库连接?
我的问题是,由于EJB Timer服务共享数据库,它只会在其中一个群集节点上运行save-method,而不是全部运行它们。这意味着并非所有的统计数据都保存在数据库中。文档http://docs.oracle.com/cd/E18930_01/html/821-2418/beahw.html似乎没有提及任何内容。
任何人都知道它是如何工作的?
我想你可以使用@ Singleton + @ Startup,因为它们是每个节点。然后在beans中实际创建定时器@PostConstruct – 2013-05-14 08:37:20
现在我的bean有'@Singleton',而我的save方法有'@PreDestroy + @Schedule(minute =“*/1”,hour =“*”)''。我不确定你的意思,但我担心save方法只能在一个群集节点上运行每个minut,而不是在每个节点上运行。 – 2013-05-14 08:56:54
我在这里找到了答案:http://stackoverflow.com/questions/14472689/glassfish-clustering-ejb-lookup – 2013-05-14 12:26:36