我需要一个 EJB 计时器任务来在每个集群成员上运行,而不是只在其中一个成员上运行。
使用 WAS8,定时器服务被配置为使用 DB 来存储持久定时器的数据。似乎所有的持久定时器都只在一个集群成员上运行。非持久定时器是否会在所有集群成员上运行?
我需要一个 EJB 计时器任务来在每个集群成员上运行,而不是只在其中一个成员上运行。
使用 WAS8,定时器服务被配置为使用 DB 来存储持久定时器的数据。似乎所有的持久定时器都只在一个集群成员上运行。非持久定时器是否会在所有集群成员上运行?
是的 - 他们共享相同的数据库。似乎所有的持久定时器都只在一个集群成员上运行。
根据文档:
集群的共享或公共定时器服务数据库。可以在任何服务器进程或集群成员上创建和访问计时器。... 但是,所有定时器都在集群中的单个服务器上执行,即 bean 的 timeout 方法对单个服务器上的所有定时器运行。哪个服务器执行计时器取决于哪个服务器进程获得对公共数据库表的锁定。
非持久定时器是否会在所有集群成员上运行?
非持久性计时器不使用计时器数据库,因此它们将在每个集群节点中独立运行。请注意,每次服务器关闭时,必须在服务器重新启动后创建非持久性计时器。
集群问题取决于平台,因此可以将 websphere 标签添加到您的问题中。