当我的系统收到“ OutOfMemoryError:Java堆空间”时,它将提交事务(标有org.apache.deltaspike.jpa.api.transaction.Transactional
批注)。
如何避免这种情况并进行回滚? “常规”异常确实会导致回滚。
我的JPA实现是EclipseLink 2.6.4,容器是运行Java 8的Tomcat 8.5.33。
答案 0 :(得分:0)
我通过捕获OutOfMemoryError
并将其重新抛出为RuntimeException
来解决了它。这样就产生了适当的回滚,垃圾回收(因为释放了大对象图)并且服务可以继续运行。