ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 확장 저장 프로시저(extended stored procedure) DBCC dllname(FREE) 주의사항
    DBMS/SQLServer 2009. 1. 16. 09:45

    Microsoft SQL Server 2000 Standard Edition 버전에서 확장 저장 프로시저를 추가할때 전체 경로로 등록을 하면 DBCC dllname(FREE) 를 할 수 없습니다.

    문제가 발생하는 상황은 아래와 같습니다.

    2000 버전에서 아래와 같이 dll파일의 전체경로를 지정하여 확장 저장 프로시저를 추가합니다.
    sp_addextendedproc 'xp_hello','c:\Program FIles\Test\xp_hello.dll'
    GO

    그리고 dll를 업데이트하기위에 dll를 서버에서 언로드합니다.
    DBCC xp_hello(FREE)
    GO

    위와 같이 실행후 결과 메시지가 아래와 같이 정상적으로 처리되었다는 메시지가 출력됩니다.
    DBCC 실행이 완료되었습니다. DBCC에서 오류 메시지를 출력하면 시스템 관리자에게 문의하십시오.


    그리고 실제로 dll파일을 교체하기위해 새 dll파일을 복사하려하면 오류가 발생합니다.
    파일 또는 폴더 복사 오류
    xp_hello 항목을 복사할 수 없습니다. 다른 사람이나 다른 프로그램에서 사용하고 있습니다.
    사용중인 파일을 닫고 다시 시도하십시요.

    원인은 DBCC dllname(FREE) 명령이 정상적으로 수행되지 않아서 dll이 서버 프로세스에서 언로드 되지 않아 발생한 문제입니다.

    음 글쓰다가 찾아보니..
    ms 홈페이지에 버그로 올라와 있네요..

    아래글을 참고 하시는게 더 정확합니다.
    http://support.microsoft.com/kb/300965 : BUG: Freeing Dynamic-Linked Libraries (DLLs) Fails to Unload Them When a Path Is Specified








Designed by Tistory.