2014년 1월 31일 금요일

[스프링3트랜잭션강좌]스프링프로그래밍적트랜잭션TransactionDefinition,TransactionStatus,PlatformTransactionManager, Spring Framework3.X Transaction, 오라클자바커뮤니티, OracleJava커뮤니티 스프링 Transaction교육강좌강의

[스프링3트랜잭션강좌]스프링프로그래밍적트랜잭션TransactionDefinition,TransactionStatus,PlatformTransactionManager, Spring Framework3.X Transaction, 오라클자바커뮤니티, OracleJava커뮤니티 스프링 Transaction교육강좌강의
 

1. TransactionDefinition
 
public interface TransactionDefinition {
  int getPropagationBehavior();
  int getIsolationLevel();
  int getTimeout();
  boolean isReadOnly();
}

트랜잭션의 네 가지 속성(ACID) 중 개발자들이 제어 가능한 부분(트랜잭션 전달(Propagation), timeout, read-only 상태, 격리성(Isolation) 레벨의 네 가지 속성)을 추상화

getTimeOut : 실행하는 트랜잭션이 시작해서 종료할 때가지의 시간을 초단위 제어
isReadOnly : 실행하는 트랜잭션이 red-only 상태여부를 결정가능
getIsolationLevel : 트랜잭션의 격리레벨을 결정
getPropagationBehavior : 트랜잭션이 실행되어야 하는 범위에 대한 제어 및 여러개의 트랜잭션이 상호작용하는 것에 대한 결정

2. TransactionStatus

트랜잭션의 상태를 관리하는 역할을 담당. PlatformTransactionManager에서 트랜잭션을 Commit할지 Rollback 할지를 결정하기 위해 사용한다.

public interface TransactionStatus extends SavepointManager {
   boolean isNewTransaction();
   void setRollbackOnly();
   boolean isRollbackOnly();
}
 
3. PlatformTransactionManager

실질적인 트랙잭션을 실행하는 역할을 한다. 트랜잭션 내에서 에러 없이 모든 작업을 완료할 경우에는 Commit, 에러가 발생할 경우에는 Rollback 작업을 실행할 수 있도록 지원한다.

public interface PlatformTransactionManager {
  void commit(TransactionStatus status)...
  void rollback(TransactionStatus status)..
}
 

댓글 없음:

댓글 쓰기