我安装了 WebSphere ND 9.0.5.13,跨两个节点运行。
每个节点有两个服务器(JVM),运行两个不同的java应用程序;两者都使用@Schedule
注释。每个应用程序的节点 1 和节点 2 上的 JVM 都位于该应用程序的集群中。
因此,在 WebSphere 中,我在集群范围内的资源 -> 调度程序下配置了调度程序,使用同样属于集群范围的单独工作管理器连接到 Oracle 数据库(相同的数据库,每个调度程序有不同的模式)。
创建调度程序后,表将按照我的预期进行填充 - 每个应用程序的调度程序都有一个与该应用程序的正确服务器 (JVM) 之一关联的租约所有者。
但是,如果我停止其中一台服务器的 JVM,租赁所有者就会更改为另一个应用程序的服务器,并且当我再次启动它们时不会交换回来。这意味着事件在没有任何监听的服务器上触发,并且事件根本不会在正确的应用程序上触发。
如何将调度程序固定到正确的范围,这样它们就不会尝试在错误的位置运行?