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 |