수동 transaction owner는 다섯 단계를 모두 책임진다

auto-commit 해제만으로 끝나지 않고 같은 Connection 전달, commit·rollback, 상태 복원과 close까지 한 owner가 보장한다.

01 · ACQUIRE

Connection 획득

한 DB session을 transaction owner가 소유한다.

02 · BEGIN

autoCommit false

업무 SQL이 자동 확정되지 않게 한다.

03 · WORK

같은 Connection

참여 repository에 동일 resource를 전달한다.

04 · COMPLETE

Commit 또는 Rollback

업무 성공 여부에 따라 한 번 결정한다.

05 · RESTORE

State 복원·Close

원래 autoCommit과 resource 상태를 되돌린다.

예외 경로도 04와 05를 건너뛰지 않는다

핵심: 수동 transaction의 진짜 비용은 begin 호출이 아니라 모든 성공·실패 경로에서 resource 상태를 복구하는 책임이다.