본문 바로가기
  • 읽고보고쓰고
PROGRAMMING/Database

[데이터베이스] ORA-01013 사용자가 현재 작업의 취소를 요청했습니다. (user requested cancel of current ope

by 체리그루브 2022. 8. 28.
728x90

ORA-01013 오류는 TimeOut 오류다.
대부분의 글들을 보면, TimeOut 시간을 늘려주라해서 문제를 해결했는가 본데, 내경우는 달랐다.

Java 에서 해당 Insert 문을 프로시저를 통해 처리했는데,
아직 Transaction이 완료되지 않은 상황에서
바깥에서 한 번 더 Insert 문을 처리한 경우였다. (결국 중복)

원인은 한 번 더 Insert를 생성하던 부분에서 아래와 같은 어노테이션이 발견된 것인데,
이런 연유는 이커머스 결제 특성상 PG사 결제를 처리해야했기 때문에
별도의 Transaction을 넣어준게 원인이었던 것.

@Transactional(propagation=Propagation.REQUIRES_NEW)

하지만 위 코드의 문제는 아니다. 지금까지 문제는 없었다.
그저 앞의 프로시저에서 Insert 문이 새롭게 추가되었다는 게 문제였다.

해결은 뒤의 Insert문에서 처리해야할 것을, 앞의 Insert 문으로 옮겨 놓고 뒤의 것을 삭제함으로 처리했다.

728x90

댓글