← 질문 목록
#396깊이 0

부모 트랜잭션과 무관하게 독립 커밋을 하려면 어떤 전파 속성을 쓰는가?

프레임워크

답변 연습

내 답변 적어보기접힘
이 브라우저에 자동 저장 · 0자
모범답안 확인하기내 답변 뒤에 열어보세요

REQUIRES_NEW 전파 속성을 쓴다. 부모 트랜잭션이 롤백되어도 이미 커밋된 자식 트랜잭션의 작업은 영향받지 않는다.

  1. 부모 트랜잭션 시작→부모 트랜잭션 일시 정지

    REQUIRES_NEW 호출

  2. REQUIRES_NEW 호출→자식 트랜잭션 시작 및 커밋

    독립 트랜잭션 수행

  3. 자식 트랜잭션 시작 및 커밋→부모 트랜잭션 재개

    부모 로직 계속 수행

주문 로직이 롤백되어도 로그 기록이나 알림 발송 이력을 남겨야 하는 상황에서 쓴다. 기본값인 REQUIRED를 쓰면 부모가 롤백될 때 자식의 변경사항도 함께 취소된다.

REQUIRES_NEW는 기존 트랜잭션을 일시 정지하고 새로운 커넥션을 가져온다. 단일 스레드가 동시에 둘 이상의 커넥션을 점유하여 커넥션 풀 고갈을 일으킬 수 있다.

자식 트랜잭션 내부에서 예외가 발생하면 부모 트랜잭션으로 예외가 전파된다. 부모 트랜잭션의 롤백을 막으려면 자식 호출부를 예외 처리 구문으로 감싸야 한다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

부모 트랜잭션과 무관하게 독립 커밋을 하려면 어떤 전파 속성을 쓰는가?