Отвечая на мой собственный вопрос, этот метод выполнения хранимой процедуры был вспомогательным методом в EJB, но он не был частью бизнес-интерфейса. Очевидно, что в этом случае новые транзакции не создаются (даже с REQUIRES_NEW), исправьте меня, еслиЯ ошибаюсь.
Я закончил тем, что переместил метод в другой EJB и аннотировал метод с помощью @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
и получил SessionContext через
@Resource
protected SessionContext ctx;
и сделал ctx.setRollbackOnly();
, когда янеобходимо откатить изменения хранимой процедуры без отката изменений внешних транзакций.
Это прекрасно работает для меня, но если я что-то не так, не стесняйтесь исправлять меня.