Руководители работ по параллельной обработке EJB
Мне нужно распараллелить асинхронный вызов нескольких различных EJB-компонентов, в каждом из которых мне нужно вызвать транзакционный метод. Я использую кластерную установку WebLogic в качестве среды развертывания, и в идеале я хотел бы распределить рабочую нагрузку по разным потокам в разных узлах кластера.
После нахождения предыдущих постов на эту тему, я думаю, что использование Work Manager может быть жизнеспособной альтернативой для моей среды, но после прочтения документации у меня останется пара вопросов, я был бы очень благодарен, если бы кто-то с большим опытом работы с Work Менеджеры могут пролить свет на это:
- Можно ли реализовать
Work
интерфейс в EJB, таким образом, что когдаrun()
метод вызывается, он может вызвать один из транзакционных методов этого EJB? Я заинтересован в асинхронном и одновременном вызове нескольких EJB-компонентов, каждый из которых представляет отдельную единицу работы, но я не знаю, распространит ли Work Manager требуемый контекст выполнения на мои EJB-компоненты. - Если я настраиваю глобальный Work Manager, когда я его использую, он автоматически распределяет рабочую нагрузку по всем узлам в моем кластере? или все отправленные ему работы будут выполняться в одном и том же узле кластера, хотя и в разных потоках? - если это так, как я могу распараллелить свою рабочую нагрузку таким образом, чтобы все узлы в моем кластере получили свою долю работы?
Кроме того, было бы замечательно, если бы кто-то мог предложить другую альтернативу (вместо использования менеджеров по работе), при условии соблюдения требований, изложенных в первом абзаце этого вопроса.