Skip to content

트랜잭션 전파

트랜잭션 전파란 트랜잭션 경계에서 이미 진행 중인 트랜잭션이 있을 때 또는 없을 때 어떻게 동작할 것인가를 결정하는 방식을 말한다.

1. PROPAGATION_REQUIRED

  • 가장 많이 사용되는 트랜잭션 속성이다. 진행 중인 트랜잭션이 없으면 새로 시작하고, 이미 시작된 트랜잭션이 있으면 이에 참여한다. DefaultTransactionDefinition의 트랜잭션 전파 속성은 바로 이 PROPAGATION_REQUIRED이다.

2. PROPAGATION_REQUIRED_NEW

  • 항상 새로운 트랜잭션을 시작한다. 즉. 앞에서 시작된 트랜잭션이 있든 없든 상관없이 새로운 트랜잭션을 만들어서 독자적으로 동작하게 한다.

3. PROPAGATION_NOT_SUPPORTED

  • 트랜잭션이 없이 동작하도록 만들 수 있다. 진행 중인 트랜잭션이 있어도 무시한다.

  • 트랜잭션 경계설정은 보통 AOP를 이용해 한 번에 많은 메소드에 동시에 적용하는 방법을 사용한다. 그 중에서 특별한 메소드만 트랜잭션 적용에서 제외하려면 이 속성을 이용해서 제외시킬 수 있다.