我需要并行化几个不同 EJB 的异步调用,在每个 EJB 中我都需要调用一个事务方法。我使用 WebLogic 的集群安装作为我的部署环境,理想情况下,我希望在集群的不同节点中的不同线程之间分配工作负载。
在找到有关该主题的先前 帖子后,我想使用 Work Managers 可能是我的环境的可行替代方案,但在阅读文档后,我留下了几个问题,如果有人有更多使用 Work 的经验,我将非常感激经理们可以对这些有所了解:
- 是否可以
Work
在 EJB 中实现接口,这样当run()
方法被调用时,它可以调用该 EJB 的事务方法之一?我对异步和并发调用多个 EJB 感兴趣,每个 EJB 代表一个不同的工作单元,但我不知道工作管理器是否会将所需的执行上下文传播到我的 EJB。 - 如果我配置一个全局工作管理器,当我使用它时,它是否会自动在集群中的所有节点之间分配工作负载?还是发送给它的所有作品都将在同一个集群节点中执行,尽管在不同的线程中?- 如果是这种情况,我如何并行化我的工作负载,以使集群中的所有节点都能分担工作?
此外,如果有人可以提出不同的替代方案(而不是使用工作管理器),那就太好了,只要满足本问题第一段中的要求。