스프링/6. 스프링 DB-2

59. 트랜잭션 전파 활용 6

sdafdq 2023. 10. 17. 12:15

그럼 만약, 위의 상황에서 MemberService에서 try catch로 에러를 잡아서 복구시키려 한다면?

우선 트랜잭션에 대한 rollbackOnly를 풀어야 할 듯?

뭐 쓰레드로컬로 접근해서 가져오는 거니, 따로 생성하는게 아니라

static? 그런 것에 접근할 듯?

 

 

 

일단 비즈니스에 예를 들면,

회원가입을 하는 데 만약 로그남기는 것에서 오류가 발생해서 회원가입을 못하게 하면..

정말 비즈니스 적으로 비효율적이다.

 

이럴경우, LogRepository에서 예외를 일으켜 rollback을 해도, 저녀석만 rollback하고 나머지는 제대로 Member 등록이 되도록 하는 게 좋다.

 

 

근데 일단,

그냥 LogRepository의 save의 트랜잭션 옵션을 REQUIRES_NEW로 하면 된다.

그럼 트랜잭션을 쟤가 새롭게 시작하게 되는 것이다.

즉, 다른 트랜잭션, 저녀석이 외부 트랜잭션이 되게 된다. 물리 트랜잭션을 다루게 된다.

'스프링 > 6. 스프링 DB-2' 카테고리의 다른 글

60. 트랜잭션 전파 활용 7  (0) 2023.10.18
58. 트랜잭션 전파 활용 5  (0) 2023.10.17
57. 트랜잭션 전파 활용 4  (0) 2023.10.17
56. 트랜잭션 전파 활용 3  (0) 2023.10.17
55. 트랜잭션 전파 활용 2  (0) 2023.10.17