• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

커밋 순서를 바꾸면 안 되나요?

22.09.15 17:35 작성 조회수 328

3

log.info("외부 트랜잭션 커밋");
txManager.commit(outer);

log.info("내부 트랜잭션 커밋");
txManager.commit(inner);

 

논리 트랜잭션들이 모두 커밋돼야 물리 트랜잭션이 커밋돼야합니다.

 

그런데, 위처럼 순서를 바꿔서 진행해봤는데 외부 트랜잭션 커밋 로그 이후 바로 내부 트랜잭션 커밋 로그가 나오지 않고 데이터베이스에 접근하는것 같은 로그가 나옵니다.

 

내부 - 외부 순서대로 커밋해야 정상적으로 작동하는건가요?

 

감사합니다.

답변 2

·

답변을 작성해보세요.

2

13months님의 프로필

13months

질문자

2022.09.16

0

김승현님의 프로필

김승현

2023.08.01

트랜젝션 전파 부분을 보시면 아시겠지만

외부를 커밋을 해버리면 물리적 커넥션 자체를 다 그냥 커밋해버리는거라... 내부 커밋이 아마 안될겁니다.

기실, 내부 커넥션을 커밋해버리면 그냥 내부적으로 존재하는 세이브포인트에 아 이 내부 트렌잭션 정상적으로 완료됬다고 찍히는 것으로만 알고 있습니다.

 

도움되셨으면 좋겠읍니다