Spring Transaction(트랜잭션)
http://kr.blog.yahoo.com/i056695/1030
트랜잭션 격리 레벨 (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 으로 세팅된 것처럼 수행된다. |