Spring Transaction(트랜잭션)
트랜잭션 격리 레벨 (Isolation Level)
격리 레벨 (Isolation Level) | 상세 설명 |
TransactionDefinition. | -1 : 개별적인 PlatformTransactionManager를 위한 디폴트 격리 레벨 |
TransactionDefinition. | 1 : 격리 레벨 중 가장 낮은 격리 레벨이다. 이 격리 레벨은 다른 Commit 되지 않은 트랜잭션에 의해 변경된 데이터를 볼 수 있기 때문에 거의 트랜잭션의 기능을 수행하지 않는다. |
TransactionDefinition. | 2 : 대 개의 데이터베이스에서의 디폴트로 지원하는 격리 레벨이다. 이 격리 레벨은 다른 트랜잭션에 의해 Commit 되지 않은 데이터는 다른 트랜잭션에서 볼 수 없도록 한다. 그러나 개발자들은 다른 트랜잭션에 의해 입력되거나 수정된 데이터는 조회할 수 있다. |
TransactionDefinition. | 4 : ISOLATION_READ_COMMITTED 보다는 다소 엄격한 격리 레벨이다. 이 격리 레벨은 다른 트랜잭션이 새로운 데이터를 입력했다면 새롭게 입력된 데이터를 조회할 수 있다는 것을 의미한다. |
TransactionDefinition. | 8 : 가장 많은 비용이 들지만 신뢰할 만한 격리 레벨을 제공하는 것이 가능하다. 이 격리 레벨은 하나의 트랜잭션이 완료된 후에 다른 트랜잭션이 실행하는 것처럼 지원한다. |
전달 행위 (Propagation Behavior)
전달 행위 (Propagation Behavior) | 상세 설명 |
TransactionDefinition. | 이미 하나의 트랜잭션이 존재한다면 그 트랜잭션을 지원하고, 트랜잭션이 없다면 새로운 트랜잭션을 시작한다. |
TransactionDefinition. | 이미 트랜잭션이 존재한다면 그 트랜잭션을 지원하고, 트랜잭션이 없다면 비-트랜잭션 현태로 수행한다. |
TransactionDefinition. | 이미 트랜잭션이 존재한다면 그 트랜잭션을 지원하고, 활성화된 트랜잭션이 없다면 예외를 던진다. |
TransactionDefinition. | 언제나 새로운 트랜잭션을 시작한다. 이미 활성화된 트랜잭션이 있다면 일시 정지한다. |
TransactionDefinition. | 활성화된 트랜잭션을 가진 수행을 지원하지 않는다. 언제나 비-트랜잭션으로 수행하고 존재하는 트랜잭션은 일시 정지한다. |
TransactionDefinition. | 활성화된 트랜잭션이 존재하더라도 비-트랜잭션적으로 수행한다. 활성화된 트랜잭션이 존재한다면 예외를 던진다. |
TransactionDefinition. | 활성화된 트랜잭션이 존재한다면 내포된 트랜잭션으로 수행된다. 작업 수행은 TransactionDefinition.PROPAGATION_REQUIRED 으로 세팅된 것처럼 수행된다. |
출처: http://idkbj.tistory.com/31 [봉 블로그]
'Spring Framework > Spring Core' 카테고리의 다른 글
[Spring] web.xml 기본 설정 (0) | 2020.06.10 |
---|---|
[spring] 스프링 MVC 인터페이스 구현 클래스 (0) | 2020.06.10 |
[Spring] 스프링 MVC 패턴 개요 (0) | 2020.06.10 |
[Spring] AOP 용어 설명 (0) | 2020.06.10 |
[Spring] 의존관계 주입 (0) | 2020.06.10 |
response.sendRedirect() 사용시 주의사항 (0) | 2019.01.08 |
Spring에서 인터셉터 적용하기 (0) | 2019.01.03 |
스프링시큐리티 중복로그인(동시접속) 제한처리 - 다중서버환경 (0) | 2018.11.28 |