본문 바로가기
Spring

[Spring] 트랜잭션 상태를 확인하는 방법

by 딱구킴 2023. 10. 11.

org.springframework.transaction.support.TransactionSynchronizationManager 이용

해당 클래스를 이용하면 현재 트랜잭션 이름과 실행된 메소드가 트랜잭션에 참여중인지 여부를 확인할 수 있다. 

// 트랜잭션의 이름을 확인한다.
// {패키지명까지 포함된 클래스이름}.{메서드이름} 으로 구성되어 있다.
// ex: com.hello.user.login
TransactionSynchronizationManager.getCurrentTransactionName(); 

// 실행된 메소드가 트랜잭션에 참여 중인지를 확인한다.
// boolean 반환 
TransactionSynchronizationManager.isActualTransactionActive();

 

org.springframework.transaction.interceptor.TransactionAspectSupport 이용

해당 클래스를 이용하면 현재 트랜잭션의 여러가지 상태를 확인할 수 있다.

// 현재 트랜잭션의 상태를 얻어낼 수 있다. 
TransactionStatus transactionStatus = TransactionAspectSupport.currentTransactionStatus();

// 현재 트랜잭션이 새로 시작하는 트랜잭션인지를 확인할 수 있다.
transactionStatus.isNewTransaction();

// 현재 트랜잭션이 rollbackOnly인지 알 수 있다.
transactionStatus.isRollbackOnly();

 

application.properties의 설정값 이용

로깅 레벨을 설정해주면 트랜잭션을 관리할 때 발생하는 로그가 상세하게 기록된다.

logging.level.org.springframework.transaction.interceptor: trace

댓글