본문 바로가기

자바/스프링

Spring Transaction

Isolation

1. READ_UNCOMMITED

 - 트랜잭션 처리 중인(커밋 되지 않은) 데이터를 다른 트랜잭션에서 읽을 수 있음

 - dirty read 발생

2. READ_COMMITED

 - 트랜잭션이 종료(커밋)된 데이터만 읽을 수 있음

 - unrepeatable read 발생

3. REPEATABLE_READ

 - 트랜잭션이 완료될 때 까지 읽는(select) 데이터에 shared lock 이 걸림

 - phantom read 발생

4. SERIALIZABLE

 - MVCC를 사용하지 않고 완벽한 읽기 일관성 제공


Propagation

1. REQUIRED

 - 부모 트랜잭션이 존재하면 그 안에서 실행, 없으면 새로운 트랜잭션을 만들어서 수행

2. REQUIRES_NEW

 - 부모 트랜잭션이 존재하던 아니던 무조건 새로운 트랜잭션을 만들어서 수행

3. SUPPORT

 - 부모 트랜잭션이 존재하면 그 안에서 실행, 없으면 트랜잭션 없이 수행

4. MANDATORY

 - 부모 트랜잭션이 존재하면 그 안에서 실행, 없으면 예외 발생

5. NESTED

 - 부모 트랜잭션 내에서 수행될 경우 별개로 커밋 or 롤백 될 수 있음. 없으면 새로운 트랜잭션을 만들어서 수행

6. NEVER

 - 트랜잭션 없이 수행. 부모 트랜잭션이 존재하면 예외 발생


'자바 > 스프링' 카테고리의 다른 글

Spring Bean Scope  (0) 2019.04.04
Spring AOP  (0) 2019.04.01
IoC(Inversion of Controll) - 제어의 역전  (0) 2019.02.13
DispatcherServlet  (0) 2019.02.11
Spring Bean 설정(XML)  (0) 2016.06.09