A라는 DB에서 B라는 DB로 db_link가 되어있습니다.
가라는 테이블은 B라는 DB에 있으며 A에서는 링크를 통해서 사용중입니다.
트랜잭션 단위로 작업은 이루어지고 기본적인 2페이즈 커밋입니다.
이경우 A DB에서 동작하는 트랜잭션단위 작업에서 가테이블에 대한 db_link를 통한 커넥션이
여러번 이루어지는 경우 B DB입장에서 A DB에서 접근하는 링크를 통한 커넥션은 동일한 세션상에서 이루어 지는지요?
A DB는 동일 세션에서 트랜잭션이 동작하게 되지만. B DB는 db_link를 통과하면서 동일하지 않은 세션으로 작업이 생성될
수 있는게 아닌지 질문드립니다. 제 기억에 A DB의 session과는 별도로 링크를 통한 작업은 내부적인 다른 풀을 가지고 있고
해당 풀에서 원격 링크에 대한 세션을 다시 할당을 받는다고 기억이 듭니다. 이경우 A입장에서는 동일 세션에서의 작업이지만
B입장에서는 세션 변경이 일어나서 가 테이블에서 row 레벨 lock이 발생할 여지가 있다고 생각이 되어집니다.
해당 내용을 찾아보니 찾아보기가 쉽지가 않네요... 제가 기억하는게 맞는지 아니면 제가 착각을 하고있는지 답변 부탁드립니다.
|