Java EE на самом деле не запрещает вам создавать свои собственные потоки, это спецификация EJB, которая говорит, что «неуправляемые потоки» запрещены. Причина в том, что эти потоки неизвестны серверу приложений, и поэтому контейнер не может управлять такими вещами, как безопасность и транзакции в этих потоках.
Тем не менее, существует множество платформ, которые создают свои собственные потоки. Например, Кварц, Ось и Весна. Изменения - это то, что вы уже используете один из них, поэтому не так уж и плохо создавать собственные темы, если вы знаете о последствиях. Тем не менее, я согласен с другими, что использование JMS или JCA предпочтительнее ручного создания потоков.
Кстати, OC4J позволяет вам создавать свои собственные темы. Однако это не позволяет искать JNDI из этих неуправляемых потоков. Вы можете отключить это ограничение, указав аргумент -userThreads .