프로프레임에서 사용하는 DBIO의 경우 select 하거나 fetch 할 때 pdb_lock 옵션을 이용할 수 있다. DBIO 스튜디오에서 Lock Query 생성을 체크하고 소스생성, 컴파일 할 때 생성된 SQL을 보면 WAIT 옵션이 뒤에 붙어 있는 것을 볼 수 있다.
dbio 내부에서 sql을 실행하기 전에 input 의 pdb_lock 변수에 PDB_LOCK 값이 세트되어 온 경우에 SQL에 WAIT 절이 있는 지 체크하게 되고 SQL 에 WAIT 절이 없는데 LOCK option을 사용하겠다고 했을 때 "Lock option has no effect for the map" 메시지가 나오게 된다.
하지만 개발자가 dbio_in.pdb_lock = PDB_LOCK; 와 같이 코딩한 적도 없는데도 DBIO가 Lock option has no effect for the map 메시지를 리턴받는 경우가 있다. 왜 그럴까?
dbio input 변수를 선언한 뒤에 초기화를 하지 않은 경우에 pdb_lock 변수에 가비지 값이 세트되어서 DBIO 내부 로직 수행중에 Lock SQL 인 지 여부를 체크하게 되는 것이다.
이러한 체크 로직은 dbio map의 proc 소스 속에 자동 생성되어져 있으니 살펴볼 수 있다.
'컴퓨터활용 > 유닉스' 카테고리의 다른 글
ipcs, ipcrm 으로 공유메모리 삭제 방법 (1) | 2018.04.25 |
---|---|
pfmNumCalc 인자 개수 체크 쉘 (2) | 2017.12.16 |
dlopen error : Permission denied (0) | 2017.07.01 |
디렉토리 사용량 조회 (1) | 2017.06.18 |
디스크 사용량 조회 (0) | 2017.06.18 |