Java와 Oracle 연동에서 트랜잭션 처리 오류를 디버깅한 경험 중심으로 푸는 결
학부 수업 팀 프로젝트에서 Java와 Oracle DB를 연동해 주문 처리 시스템을 만드는 과제를 맡았습니다. 기능 자체는 빠르게 구현했는데, 테스트 도중 특정 조건에서 롤백이 안 되는 오류가 생겼습니다. 처음엔 로직 문제라고 생각해 코드를 반복해서 봤는데 원인을 못 찾았습니다. 나중에 알고 보니 커넥션 풀에서 받은 연결이 자동 커밋 모드로 열린 상태였고, 명시적으로 트랜잭션을 시작하지 않아서 중간 오류가 생겨도 롤백이 되지 않았습니다.
트랜잭션 설정을 코드에서 명시적으로 관리하도록 바꾼 뒤 문제가 해결됐습니다. 이후엔 DB 연결을 쓸 때 자동 커밋 여부를 항상 먼저 확인하는 습관이 생겼습니다. 처음엔 이 부분을 당연하다고 여겨서 확인하지 않았던 게 실수였습니다. 기본 설정을 믿지 말고 직접 확인하는 것이 중요하다는 걸 배웠습니다.