inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

아그작님의 게시글

아그작 아그작

@thddmd20092795

수강평 작성수
-
평균평점
-

게시글 5

질문&답변

TransactionManager 분리/통합 사용 시 이해가 가지 않는 상황 발생

킬구형... 정말 감동이다. 이렇게까지 상세한 답변을 해주다니... 덕분에 완벽하게 이해 완료했다. 내가 놓쳤던 건 다음 부분이었다. AbstractPlatformTransactionManager의 processCommit()에서 새로 생성된 트랜잭션인지 여부 검사 → 트랜잭션을 새로 생성한 5-1케이스(JdbcTransactionManager)인 경우에만 트랜잭션 commit. 따라서 version 2로 업데이트된다. 기존 트랜잭션을 그대로 사용하는 5-2 케이스(JpaTransactionManager)는? EntityManager 1차 캐시에 남아있을 것이다. 따라서 DB에는 여전히 version 1 상태로 남아있게 되지 사실 질문한 날 하루종일 스프링 배치 디버깅을 했다. 그러다 보니 트랜잭션 매니저 통합 사용 시, AbstractPlatformTransactionManager의 processCommit() 에서 커밋이 날라가서 DB에 반영이 되었다고 잘못 확인을 하였던 것 같다. ( Participating in existing transaction 로그가 이제서야 보인다... 대가리 박는다.) 그래서 질문의 내용이 '왜 트랜잭션 매니저 통합 사용 시 OptimisticLocking이 발생하지 않는가'' 였다... 디버깅한 내용이 제대로 파악이 안되어있는데, 일목요연하게 정리해준 덕분에 빠르게 오해를 바로 잡을 수 있었다. 킬구형...정말 고맙고.... 미안하다...

좋아요수
2
댓글수
5
조회수
421