2010-12-02 3 views
0

Advantage Extended Procedures은 .NET으로 작성되고 고급 데이터베이스 서버에서 실행됩니다. SP에 처음 전화를 걸면 바로 .NET 어셈블리가 잠 깁니다. 어셈블리를 새 버전으로 업데이트해야합니다. 지금까지 제가 발견 한 유일한 방법은 ADS를 다시 시작하는 것입니다. 이것은 절대적으로 불편합니다. 내 어셈블리를 잠금 해제 할 다른 방법이 있습니까?고급 데이터베이스 서버 : .NET Advantage 확장 프로 시저 핫 대체

+3

AEPα! 저를 제외한 모든 사람들에게 분명합니까 ?? –

+0

은 AEP가 "Advantage Extended Procedure"를 의미합니까? –

+0

죄송합니다 marc_s, 나는 AEP가 Advanced Database Server에 익숙한 사람들에게 분명하다고 생각했습니다. –

답변

1

Advantage Extended Procedure (AEP)를 테스트/디버그하는 가장 쉬운 방법은 테스트 응용 프로그램을 실행할 때마다로드되고 테스트 응용 프로그램이 종료 될 때 언로드되는 Advantage Local Server (ALS)를 사용하는 것입니다.

ADS (Advantage Database Server)를 사용하는 경우 저장 프로 시저를 사용하는 클라이언트의 연결이 끊어 졌는지 확인해야합니다. Advantage는 저장 프로 시저를 사용하는 모든 연결이 닫힐 때까지 DLL을 메모리에 유지합니다. 테스트 응용 프로그램을 비정상적으로 종료하면 서버는 응용 프로그램이 종료되었음을 알 수 없습니다. 클라이언트가 클라이언트 시간 종료 설정 내에서 응답하지 않으면 연결은 서버에 의해 정리되며 기본값은 2 분입니다.

디버깅의 일부로/EXE 스위치를 사용하여 실행 파일로 ADS를 시작할 수도 있습니다. 이것은 AEP를 디버깅 할 때 ADS를 자동으로 시작하고 중지 할 수 있습니다. 그러나이 방법을 사용할 때는 테스트 응용 프로그램을 별도로 시작해야합니다.

또한 AEP를 디버깅하기 전에 ADS_DD_DISABLE_DLL_CACHING 시스템 프로 시저를 호출하여 DLL Caching을 비활성화해야합니다. 기본적으로 ADS는 저장 프로 시저가 포함 된 DLL의 복사본을 만들고 DLL에 액세스 할 때 최신 버전을 확인합니다. 이 기능을 비활성화하면 항상 최신 버전의 DLL을 사용하게됩니다.

+1

로컬 서버 또는/exe 스위치가 디버깅에 적합합니다. 그러나 DLL 캐싱은 일반 DLL에만 적용됩니다. 어셈블리의 경우 Advantage가 언로드 될 때까지 언로드되지 않습니다. 이 페이지 중간의 ".NET 사용자 참고 사항"을 도움말 파일에서 참조하십시오. http://devzone.advantagedatabase.com/dz/WebHelp/Advantage10/index.html?master_tips_and_tricks_advantage_extended_procedures.htm – Edgar

+0

Tnx Edgar는 내 문제에 간단한 해결책이없는 것으로 보입니다. 디버깅 목적으로 로컬 서버를 사용하고 있습니다. 그러나 일반적인 테스트를 위해 우리의 테스트 팀은 DLL을 업데이트해야 할 때마다 멈출 수없는 일반 서버를 사용하고 있습니다. –