컴퓨터활용/프로프레임

프로프레임의 체크인/체크아웃 기능 ( 편집 LOCK, HOLD 기능)

멜번초이 2008. 7. 2. 10:37

프로프레임에서 다른 사람이 나의 프로그램을 OPEN 해서 보다가 실수로 저장해 버리는 것을 막을 방법이 없는 것인가?

과거에 프로프레임 스튜디오에는 체크인/체크아웃 기능이 있었다. 그러나 패치 34 부터인가 HOLD 기능이 나오기 시작하였고 이 체크인/체크아웃 기능과 hold 기능을 프로젝트별로 선택하여 사용하도록 가이드되고 있다. 이 두가지 기능을 동시에 사용할 수 있다면 금상첨화겠으나 하나만 사용해야 하는 제약이 있다. 

1. 체크인/체크아웃기능 ( CHECK IN / CHECK OUT )

메뉴에서 체크아웃을 선택하면 해당 프로그램은 체크아웃 시킨 사람만 수정이 가능하다. 같은 그룹에 있는 팀원이라도 수정이 불가능하게 된다. 다시 체크인 한 후에는 같은 그룹내의 팀원까지만 수정이 가능하게 된다.

2. 홀드(HOLD) 기능

누군가가 프로그램을 OPEN 하면 자동적으로 편집  LOCK 이 걸리게 된다. 다시 OPEN한 프로그램을 닫으면 자동적으로 이 LOCK 이 해제된다.

3. 대책 (피해가는 방법)

이 두가지 기능은 상호 배타적으로 사용될 수 없음에도 불구하고 배타적으로 사용하도록 개발되어 있다. 이것은 별개의 기능이기 때문에 동시에 지원되어야 하는 기능이 상식이나 티맥스 연구소에서 아직은 경황이 없어서 여기까지는 지원이 안 되는 모양이다.

체크인/체크아웃을 기본 LOCK 정책으로 채택한 프로젝트에서는 자기소유의 모든 프로그램은 미리  체크아웃을 시켜 놓아 버리는 것이 안전하다.
만약 프로젝트에서 HOLD 기능을 기본 LOCK 정책으로 채택하고 있다면 다음의 꼼수를 이용하는 것을 추천한다. 퇴근할 때나 중간에 수시로 다음의 SQL을 돌려 준다면 자동적으로 LOCK 이 걸리게 되어 OWNER 만이 프로그램을 수정할 수 있도록 편집 LOCK 이 걸리게 되므로 프로그램을 OPEN 해서 보다가 본의아니게 실수로 프로그램을 수정한 후 저장해 버리는 경우를 예방할 수 있다.

INSERT INTO DEV_LOCK_STATUS
SELECT RESOURCE_ID, OWNER, 'Y', '', SYSDATE
FROM DEV_RESOURCE
WHERE
OWNER IN ('9812978','9812087') -- 이부분을 빼면 모든 프로그램이 대상이 되겠죠.
AND RESOURCE_TYPE IN ('PERSIST', 'VIEW', 'EXECSQL', 'DYNAMICSQL' ,
                      'BIZ_MODULE', 'SERVICE_MODULE', 'BATCH_MODULE',
                      'STRUCTURE' );

COMMIT;


LOCK 이 정상적으로 걸린 경우 네비게이터의 아이콘에 자물쇠모양이 붙게 된다.

사용자 삽입 이미지