Вы в сущности упускаете смысл Java EE и MDB.
Контейнер Java EE - это управляемая среда выполнения . Основная идея контейнера Java EE состоит в том, что, делегируя определенные ортогональные задачи, такие как управление транзакциями, контейнеру, компонент остается сфокусированным на бизнес-логике и (в утопии) является компонентом многократного использования, который мало полагается на его среду выполнения.
До MDB контейнер Java EE был пассивно-реактивной системой, которая не позволяла координировать действия асинхронных активных агентов на стороне контейнера. Затем компонент Message Driven Beans решил эту проблему, предоставив стандартный способ запуска асинхронного действия на стороне сервера.
У вас есть оригинальное событие e0
, которое потребляется MBD0
. В сообщении MDB0
сгенерирует e1
и поставит в очередь сообщение в ответ на MBD1
, которое затем выполнит свою работу и отправит сообщение на MDB2
и т. Д.
Там у вас есть простой рабочий процесс из n последовательных шагов с использованием pub / sub семантики сообщений (и o / c с асинхронной семантикой), и все задействованные потоки управляются контейнером, Если вы хотите, чтобы одновременно действующие субъекты работали, а затем собирали результаты и запускали окончательное действие, рассмотрите возможность использования шаблонов, включающих JMS themes .