Чтобы добавить к ответу @Charlie Martin, что бы вам ни понадобился Исполнитель, вы можете разработать другой EJB для выполнения того же действия без Исполнителя. Это позволяет новому EJB работать в отдельном потоке, обрабатываемом контейнером. Недостатком является то, что вам, возможно, придется «переопределить колесо», поскольку вы по-прежнему не хотите использовать потоки / Executor из JVM. Это также увеличивает накладные расходы на получение одного EJB для поиска / запроса / подключения / вызова другого.
Суть в том, что EJB должны сами быть рабочими потоками. Может показаться излишним копировать код вместо того, чтобы использовать Executor, и это до определенного момента. Самое большое различие - это масштаб. Исполнители будут ограничены одной JVM, в то время как EJB могут быть масштабированы по JVM и по серверам.