OutOfMemoryError вызывает принятие транзакции JPA
Когда моя система получает сообщение "OutOfMemoryError: пространство кучи Java", она фиксирует транзакцию (отмечена org.apache.deltaspike.jpa.api.transaction.Transactional
аннотация).
Как избежать этого и сделать откат вместо? "Обычные" исключения вызывают откат.
Моя реализация JPA - EclipseLink 2.6.4, а контейнер - Tomcat 8.5.33, работающий с Java 8.
1 ответ
Я решил это, поймав OutOfMemoryError
и бросить его как RuntimeException
, Это произвело надлежащий откат, сборку мусора (потому что был освобожден большой граф объектов), и служба могла продолжить работу.