[SPRING] UnexpectedRollbackException - 전체 시나리오 분석
SPRINGUnexpectedRollbackException - 전체 시나리오 분석
이 예외에 관해서 내가 아는 것은 Spring의 문서와 거대한 스택 추적을 첨부 한 서리가있는 개발자들이있는 포럼 게시물과 응답이 없다는 것입니다.
Spring의 문서에서 :
나는 한 번 그리고 모든 것을 이해하고 싶다.
해결법
-
==============================
1.로그에서 조금 더 스크롤하거나 (또는 버퍼 크기를 늘리십시오) 그러면 예외가 정확히 무엇이 발생했는지 알 수 있습니다.
로그에서 조금 더 스크롤하거나 (또는 버퍼 크기를 늘리십시오) 그러면 예외가 정확히 무엇이 발생했는지 알 수 있습니다.
거기에 없으면 UnexpectedRollbackException의 getMostSpecificCause () 및 getRootCause () 메소드를 확인하십시오.이 메소드가 유용 할 수 있습니다.
-
==============================
2.나머지 질문에 답하는 것으로 나타났습니다. https://jira.springsource.org/browse/SPR-3452
나머지 질문에 답하는 것으로 나타났습니다. https://jira.springsource.org/browse/SPR-3452
-
==============================
3.그럼 UnexpectedRollbackException을 재현하는 방법을 알려줄 수 있습니다. 내 프로젝트에서 일하고 있었는데 다음과 같은 상황에서 UnexpectedRollbackException이 발생했습니다. 저는 프로젝트에서 컨트롤러, 서비스 및 DAO 레이어를 사용하고 있습니다. 내가 한 것은 내 서비스 계층 클래스에 있습니다.
그럼 UnexpectedRollbackException을 재현하는 방법을 알려줄 수 있습니다. 내 프로젝트에서 일하고 있었는데 다음과 같은 상황에서 UnexpectedRollbackException이 발생했습니다. 저는 프로젝트에서 컨트롤러, 서비스 및 DAO 레이어를 사용하고 있습니다. 내가 한 것은 내 서비스 계층 클래스에 있습니다.
class SomeServiceClass { void outerTransaction() { // some lines of code innerTransaction(); //AbstractPlatformTransactionManager tries to commit but UnexpectedRollbackException is thrown, not here but in controller layer class that uses SomeServiceClass. } void innerTransaction() { try { // someDaoMethod or someDaoOperation that throws exception } catch(Exception e) { // when exception is caught, transaction is rolled back, outer transaction does not know about it. // I got this point where inner transaction gets rolled back when I set HibernateTransactionManager.setFailEarlyOnGlobalRollbackOnly(true) // FYI : use of following second dao access is wrong, try { // again some dao operation } catch(Exception e1) { throw e2; } } } }
from https://stackoverflow.com/questions/2007097/unexpectedrollbackexception-a-full-scenario-analysis by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Apache Camel - 시작시 작업을 한 번만 실행하도록 트리거 (0) | 2019.02.03 |
---|---|
[SPRING] @ 자동 기본 모드 (0) | 2019.02.03 |
[SPRING] Spring 5 Webflux에서 CORS를 사용 하시겠습니까? (0) | 2019.02.03 |
[SPRING] 최대 절전 모드 콜백 사용의 장점은 무엇입니까? (0) | 2019.02.03 |
[SPRING] 스프링 데이터 레스트 검사기 (0) | 2019.02.03 |