我有一个应用程序,部署在 WebSphere 8.5.5.2 上的多个节点上 该应用程序包含一些应仅执行一次的业务逻辑(如果在一个节点上执行,则不应在其他节点上执行)。
我怎样才能实现这个目标? 我发明的唯一解决方案是使用此特定逻辑创建一个单独的耳朵并为其创建一个单独的节点。还有其他办法吗?
最佳答案
您可以将所有节点配置为访问同一数据库,然后让代码在数据库中创建一行,如果该行尚不存在,则只执行一次代码;提交数据库行的创建。
如果您需要让代码按某个计划/时间间隔恰好运行一次,那么您可以使用持久 EJB 计时器。如果集群中的所有服务器都配置为使用相同的数据库,则 EJB 计时器将在其中一个服务器实例上按计划运行。
以下有关为集群配置 EJB 计时器服务器的信息可能会有所帮助:https://www.ibm.com/support/knowledgecenter/en/SSAW57_8.5.5/com.ibm.websphere.nd.doc/ae/rejb_timerservice_v8.html
关于java - WebSphere为两个服务器节点创建一个bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50270197/