2013-03-19 2 views
0

PowerBuilder에서 응용 프로그램을 사용하고 많은 사용자가 여러 시간 동안 응용 프로그램을 사용하지 않는 상태로 유지합니다. 때때로 작업이 커밋하는 것을 잊어 버립니다. 따라서 일부 테이블은 무기한으로 잠겨있어 모든 사람이 작업하지 못하게합니다. 모든 커밋을 제자리에 넣으려고했지만 큰 응용 프로그램에서이를 디버그하는 것은 정말로 어렵습니다. 응용 프로그램이 유휴 상태 일 때 데이터베이스 연결을 끊고 싶습니다. 이것은 어렵지 않지만 마우스 나 키보드를 터치 할 때 응용 프로그램이 연결을 다시 열어야합니다. 어떻게해야합니까? 유휴 상태 일 때마다 응용 프로그램을 닫는 것은 허용되지 않습니다.PowerBuilder : 유휴 상태에서 데이터베이스 연결 해제

답변

2

우선, 나는 당신이 하지 밖으로 쉬운 방법을 추천하고, 모든 거래를 닫는 작업을 얻을 것입니다. 잠금 문제를 제외하고 커밋되지 않은 항목이있는 경우 이 실행될 다음 문이 실행될이 COMMIT 또는 ROLLBACK이거나 현재 필요하지 않은지 전혀 알 수 없습니다. 내 경험에 따르면 이러한 조사는 항상 거래와 관련된 다른 문제를 야기한다는 것입니다. 이 문제는 아마도 잠금보다 큽니다.

다시 연결하는 경우,이 경로 (분명히 내 첫 번째 선택 사항은 아님)를 사용하는 경우 대체 디자인을 권하고 싶습니다. 에 연결할 때는 연결이 필요합니다. 기본적으로 (당신은 당신의 거래 객체에 함수 내부의 코드를 캡슐화하는 거라고 경우) : 당신은 PFC와 같은 프레임 워크를 가지고있는 경우에

IF DBHandle() = 0 THEN CONNECT using THIS; 

, 당신은 가능성 만이 코드에 몇 군데있을 것이다. 검색 및 업데이트와 같은 작업을 캡슐화하는 프레임 워크가 없다면, 그랬 으면 좋겠다. 모든 키 입력 및 마우스 동작에서 데이터베이스 연결을 확인하여 성능을 저하시키는 것보다 낫습니다.

행운을 빕니다,

테리.

+0

테리가 더 구체적 일 수 있습니까? 유휴 상태 일 때 app-freezing-bug는 SQL Server 2000에서 2005/8 (MSS에서 SNC로)으로 마이그레이션 한 후 "상속받은"것이 가장 성가신 일입니다. – PanosPlat

+0

@PanosPlat : 나는 당신이 무엇에 대한 설명을 요구하고 있는지 분명하지 않습니다. – Terry