[SPRING] Spring 트랜잭션에서 requires_new와 nested propagation 사이의 차이점
SPRINGSpring 트랜잭션에서 requires_new와 nested propagation 사이의 차이점
PROPAGATION_REQUIRES_NEW 및 PROPAGATION_NESTED 전파 정책 간의 동작 차이를 이해할 수 없습니다. 두 경우 모두 현재 프로세스가 롤백되지만 전체 트랜잭션이 아닌 것으로 보입니다. 어떤 단서?
해결법
-
==============================
1.이 링크 참조 : PROPAGATION_NESTED 대 PROPAGATION_REQUIRES_NEW? Juergen Hoeller가 아주 잘 설명해줍니다.
이 링크 참조 : PROPAGATION_NESTED 대 PROPAGATION_REQUIRES_NEW? Juergen Hoeller가 아주 잘 설명해줍니다.
-
==============================
2.PROPAGATION_REQUIRES_NEW : 영향을받는 각 트랜잭션 범위에 완전히 독립적 인 트랜잭션을 사용합니다. 이 경우 내부 물리적 트랜잭션이 다르기 때문에 내부 트랜잭션의 롤백 상태에 영향을받지 않는 외부 트랜잭션을 사용하여 독립적으로 커밋하거나 롤백 할 수 있습니다.
PROPAGATION_REQUIRES_NEW : 영향을받는 각 트랜잭션 범위에 완전히 독립적 인 트랜잭션을 사용합니다. 이 경우 내부 물리적 트랜잭션이 다르기 때문에 내부 트랜잭션의 롤백 상태에 영향을받지 않는 외부 트랜잭션을 사용하여 독립적으로 커밋하거나 롤백 할 수 있습니다.
PROPAGATION_NESTED : 롤백 할 수있는 여러 세이브 포인트가있는 단일 실제 트랜잭션을 사용합니다. 이러한 부분 롤백을 사용하면 내부 트랜잭션 범위에서 해당 범위에 대한 롤백을 트리거 할 수 있으며 일부 트랜잭션이 롤백 되었음에도 불구하고 외부 트랜잭션이 물리적 트랜잭션을 계속할 수 있습니다. 이 설정은 일반적으로 JDBC 저장 점에 매핑되므로 JDBC 자원 트랜잭션에서만 작동합니다.
스프링 문서 확인
-
==============================
3.차이점을 찾아주세요.
차이점을 찾아주세요.
1.) Use of NESTED Transaction
현재 트랜잭션이 존재하면 중첩 된 트랜잭션 내에서 실행하고, 그렇지 않으면 PROPAGATION_REQUIRED처럼 동작하십시오. 중첩 된 트랜잭션은 Spring에 의해 지원됩니다.
2.) REQUIRED 거래의 사용 현재 트랜잭션을 지원하고 존재하지 않으면 새 트랜잭션을 작성하십시오. . 은행 계좌를 인출, 입금, 거래 갱신과 같은 의미
3.) REQUIRES_NEW 거래의 사용 새 트랜잭션을 작성하고 현재 트랜잭션을 일시 중단하십시오.
from https://stackoverflow.com/questions/12390888/differences-between-requires-new-and-nested-propagation-in-spring-transactions by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] HandlerInterceptorAdapter에서 서비스를 Autowire 할 수 없습니다. [duplicate] (0) | 2019.01.26 |
---|---|
[SPRING] 스프링 웹 MVC : 요청 매개 변수와 경로 변수에 동일한 요청 매핑 사용 (0) | 2019.01.26 |
[SPRING] 봄 3 autowiring 및 junit 테스트 (0) | 2019.01.25 |
[SPRING] Spring-Security의 기본 AuthenticationManager는 무엇입니까? 인증 방법은 무엇입니까? (0) | 2019.01.25 |
[SPRING] 스프링 보안으로 로그인 한 사용자에게 조건 적으로 JSP 컨텐츠를 표시하는 방법 (0) | 2019.01.25 |