PRB: 대규모 트랜잭션을 처리하는 동안 “File sharing lock count exceeded…” 오류가 발생한다

Office 2003에 대한 지원이 종료되었습니다.

Microsoft는 2014년 4월 8일 Office 2003에 대한 지원을 종료했습니다. 이러한 변경에 따라 해당 소프트웨어 업데이트 및 보안 옵션이 영향을 받습니다. 사용자에게 미치는 영향 및 계속 보호를 받는 방법에 대해 알아보십시오.

중요: 이 문서에서는 레지스트리 수정 방법을 설명합니다. 레지스트리를 수정하기 전에 해당 레지스트리를 백업하고 문제 발생 시 이를 복원하는 방법을 이해해야 합니다. 레지스트리 백업, 복원 및 편집 방법은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
256986 Microsoft Windows 레지스트리 설명
현상
다중 사용자 환경에서 한 명 이상의 사용자가 많은 트랜잭션을 처리하는 경우 트랜잭션이 실패하고 다음과 같은 오류 메시지가 나타날 수 있습니다.
File sharing lock count exceeded. Increase MaxLocksPerFile registry entry.
원인
트랜잭션을 수행하는 데 필요한 잠금 수가 파일당 최대 잠금 수를 초과하면 이 오류가 발생합니다.
해결 과정
경고 레지스트리 편집기를 잘못 사용하면 심각한 문제가 발생할 수 있으며 문제를 해결하기 위해 운영 체제를 다시 설치해야 할 수도 있습니다. Microsoft는 레지스트리 편집기를 잘못 사용함으로써 발생하는 문제에 대해 해결을 보증하지 않습니다. 레지스트리 편집기의 사용에 따른 모든 책임은 사용자에게 있습니다. 이 문제를 해결하려면 파일당 최대 잠금 수를 늘려야 합니다. 이렇게 하려면 다음 방법 중 하나를 사용하십시오.

방법 1: MaxLocksPerFile에 대한 레지스트리 키를 설정하여 파일당 최대 잠금 수 늘리기

  1. 시작을 누르고 실행을 누릅니다.
  2. regedit를 입력한 다음 확인을 누릅니다.
  3. 레지스트리 편집기에서 다음 레지스트리 키를 찾습니다.
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Jet 4.0
  4. 레지스트리 편집기의 오른쪽 창에서 MaxLocksPerFile을 두 번 누릅니다.
  5. DWORD 값 편집 대화 상자에서 10진수를 누릅니다.
  6. 필요에 따라 값 데이터 상자의 값을 수정한 다음 확인을 누릅니다.
참고 이 방법을 사용하면 Microsoft Jet 데이터베이스 엔진 4.0을 사용하는 모든 응용 프로그램에 대한 Windows 레지스트리 설정이 변경됩니다.

방법 2: SetOption 메서드를 사용하여 일시적으로 MaxLocksPerFile 변경

참고 이 문서에 나와 있는 예제 코드는 Microsoft Data Access Objects(DAO)를 사용합니다. 이 코드를 제대로 실행하려면 Microsoft DAO 3.6 개체 라이브러리를 참조해야 합니다. 이렇게 하려면 Visual Basic Editor의 도구 메뉴에서 참조를 누르고 Microsoft DAO 3.6 Object Library 확인란이 선택되었는지 확인합니다. SetOption 메서드를 사용하면 파일당 기본 잠금 수를 일시적으로 무시할 수 있습니다. 파일당 기본 잠금 수는 MaxLocksPerFile 레지스트리 키를 설정할 때 설정됩니다. SetOption 메서드를 사용하여 값을 새로 설정하면 DBEngine 개체를 닫을 때까지 이 값을 사용할 수 있습니다. 방법 2를 사용하려면 다음과 같이 하십시오.
  1. Microsoft Access를 엽니다.
  2. 데이터베이스를 엽니다. 왼쪽 창에서 모듈을 누릅니다.
  3. 오른쪽 창에서 <모듈 이름>을 마우스 오른쪽 단추로 누른 다음 디자인 보기를 누릅니다.

    참고 기존 모듈이 없으면 새로 만드십시오.
  4. Microsoft Visual Basic -<데이터베이스 이름>-[<모듈 이름>(코드)] 창의 보기 메뉴에서 직접 실행 창을 누릅니다.
  5. 직접 실행 창에서 다음 코드를 입력합니다.
    DAO.DBEngine.SetOption dbmaxlocksperfile				,15000
  6. Enter 키를 눌러 코드를 실행합니다.

    참고 이렇게 하면 일시적으로 MaxLocksPerFile 값이 15,000으로 설정됩니다.
대규모 트랜잭션을 처리하려면 요구 사항에 맞게 MaxLocksPerFile 값을 설정한 다음 세션에서 트랜잭션을 실행합니다.

SetOption 메서드를 사용하여 변경한 MaxLocksPerFile 설정은 현재 세션에서만 사용할 수 있습니다.
추가 정보
MaxLocksPerFile 설정을 통해 Microsoft Jet이 파일에 설정하는 최대 잠금 수가 결정됩니다. 기본 MaxLocksPerFile 값은 9,500입니다. Novell NetWare 서버에서 작업하는 경우 연결당 최대 서버 레코드 잠금 수가 10,000이므로 이 값을 변경하지 마십시오. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
305995 PRB: Novell 서버에서 Jet 데이터베이스에 연결할 때 "3050 Could Not Lock File" 오류가 발생한다
참조
Jet 데이터베이스 엔진을 위한 레지스트리 설정을 최적화하는 방법에 대한 자세한 내용은 도움말 메뉴에서 Microsoft Access 도움말을 누르고 Office 길잡이나 도움말 마법사에서 Microsoft Jet를 위한 Windows 레지스트리 설정 최적화를 입력한 다음 찾기를 눌러서 나타나는 항목을 참조하십시오. Access 2000의 경우 검색 결과 Microsoft Jet를 위한 Windows 레지스트리 설정 최적화를 참조하고, Access 2002의 경우에는 사용자 프로필 및 런타임 옵션을 사용하여 응용 프로그램 환경 사용자 지정을 참조하십시오.

SetOption 메서드에 대한 자세한 내용은 Visual Basic Editor의 도움말 메뉴에서 Microsoft Visual Basic 도움말을 누르고 Office 길잡이나 도움말 마법사에서 SetOption 메서드를 입력한 다음 찾기를 눌러서 나타나는 항목을 참조하십시오. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
198633 ACC2000: 동기화 중 "File Sharing Lock Count" 오류가 발생한다
209940 ACC2000: 오류 메시지: 디스크 공간이나 메모리가 부족합니다




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.
ACC2003
속성

문서 ID: 815281 - 마지막 검토: 03/02/2004 03:00:00 - 수정: 4.1

Microsoft Office Access 2003, Microsoft Access 2002 Standard Edition, Microsoft Access 2000 Standard Edition

  • kberrmsg kbregistry kbprb KB815281
피드백