EJB3/DB2 Транзакции не откатываются

У меня есть ситуация, когда у меня есть дерево Entitiesи Session Bean, Session Bean просто сохраняется или объединяет сущности, а рассматриваемый метод помечается как @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW),

Теперь в случае, если дочерняя сущность не может быть сохранена / объединена из-за (например) нарушения внешнего ключа или отсутствия необнуляемого поля, транзакция помечается в журналах для отката, и EJBException выброшены. Я ожидал откат всей транзакции, но вместо этого я вижу, как родительский объект появляется в базе данных после возврата вызова EJB-сеанса, несмотря на сбой дочернего объекта.

Кто-нибудь еще видел такое поведение? Дополнительная информация:

Server: Glassfish
Persistence manager: Toplink
Connection Pool: DB2 Universal Driver XA compliant driver.

Благодарю.

1 ответ

Решение

Похоже, пул соединений в Glassfish был установлен с включенным флагом "Нетранзакционные соединения". Это было причиной отказа откатить.

Другие вопросы по тегам