oracle 프로시저 사용 시 트랜잭션 문의
- 작성자 :
- 김*진
- 작성일 :
- 2023-11-23 13:42:03
- 조회수 :
- 516
- 구분 :
- 개발환경 / 3.10
- 진행상태 :
- 완료
Q
프로시저를 호출할 때 프로시저는 별도의 트랜잭션을 가지는지 궁금합니다.
아래와같은 로직이 있는데요.
1. Update ( 현재 Table 의 type값은 'B' 로 저장이 되어 있다는 가정 )
Update Table
set type = 'A'
where seq =1;
2. 프로시저 호출
프로시저 내부 로직 중 아래와 같이 SELECT 하는 쿼리가 있는데
SELECT 테이블
WHERE type = 'A' ( type = A 로 조회시 데이터가 안나옴 )
동일 서비스 내에서
1번 Upate로 type을 'A'로 업데이트 하고/
프로시저에서 type을 'A'로 조회하면 데이터가 안나오고 'B'로 조회 하면 데이터가 정상적으로 나옵니다.
동일 서비스인데 트랜잭션은 별도로 가지고 가는걸까요 ?
오라클 프로시저의 특성인지 프레임워크 환경 문제인지 잘 모르겠네요.
동일 트랜잭션으로 묶을 수 있을까요?
문의드립니다.
아래와같은 로직이 있는데요.
1. Update ( 현재 Table 의 type값은 'B' 로 저장이 되어 있다는 가정 )
Update Table
set type = 'A'
where seq =1;
2. 프로시저 호출
프로시저 내부 로직 중 아래와 같이 SELECT 하는 쿼리가 있는데
SELECT 테이블
WHERE type = 'A' ( type = A 로 조회시 데이터가 안나옴 )
동일 서비스 내에서
1번 Upate로 type을 'A'로 업데이트 하고/
프로시저에서 type을 'A'로 조회하면 데이터가 안나오고 'B'로 조회 하면 데이터가 정상적으로 나옵니다.
동일 서비스인데 트랜잭션은 별도로 가지고 가는걸까요 ?
오라클 프로시저의 특성인지 프레임워크 환경 문제인지 잘 모르겠네요.
동일 트랜잭션으로 묶을 수 있을까요?
문의드립니다.
환경정보
-
- OS 정보 : window11
- 표준프레임워크 버전 : 3.10
- JDK(JRE) 정보 : 1.8
- WAS 정보 : tomcat9
- DB 정보 : oracle 19c
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터 입니다.
기본 설정으로 사용 하는 경우
프로시저도 동일 트랜잭션으로 처리 됩니다.
기재하신 증상으로 보아
Propagation 또는 Isolation 설정이 별도로 되어 있는지
확인이 필요해 보입니다.
예를 들어
다음과 같은 설정이 있다면
불필요 할 것으로 예상됩니다.
PRAGMA AUTONOMOUS_TRANSACTION
감사합니다.
표준프레임워크센터 입니다.
기본 설정으로 사용 하는 경우
프로시저도 동일 트랜잭션으로 처리 됩니다.
기재하신 증상으로 보아
Propagation 또는 Isolation 설정이 별도로 되어 있는지
확인이 필요해 보입니다.
예를 들어
다음과 같은 설정이 있다면
불필요 할 것으로 예상됩니다.
PRAGMA AUTONOMOUS_TRANSACTION
감사합니다.