"Przekroczono liczbę blokad udostępniania plików..." błąd podczas przetwarzania dużych transakcji

Uwaga

Nazwa usługi Office 365 ProPlus została zmieniona na Aplikacje usługi Microsoft 365 dla przedsiębiorstw. Aby uzyskać więcej informacji na temat tej zmiany, przeczytaj ten wpis w blogu.

Symptomy

Gdy jeden lub więcej użytkowników przetwarza wiele transakcji w środowisku wielu użytkowników, transakcje mogą zakończyć się niepowodzeniem z następującym komunikatem o błędzie:

Przekroczono liczbę blokad udostępniania plików. Zwiększ wpis rejestru MaxLocksPerFile.

Przyczyna

Błąd występuje, jeśli liczba blokad wymaganych do wykonania transakcji przekracza maksymalną liczbę blokad na plik.

Obejście problemu

Ważne Ta sekcja, metoda lub zadanie zawiera kroki, które informują, jak zmodyfikować rejestr. Jednak poważne problemy mogą wystąpić, jeśli nieprawidłowa modyfikacja rejestru. W związku z tym upewnij się, że należy wykonać te kroki ostrożnie. Aby uzyskać dodatkową ochronę, przed zmodyfikowaniem rejestru należy wykonać jego kopię zapasową. Następnie można przywrócić rejestr, jeśli wystąpi problem. Aby uzyskać więcej informacji dotyczących sposobu utworzenia kopii zapasowej i przywrócenia rejestru, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

322756 Jak wykonać kopię zapasową i przywrócić rejestr w systemie Windows

Aby obejść ten problem, należy zwiększyć maksymalną liczbę blokad na plik. Aby to zrobić, należy użyć jednej z następujących metod.

Metoda 1: Ustaw klucz rejestru na MaxLocksPerFile, aby zwiększyć maksymalną liczbę blokad na plik

  1. Kliknij przycisk Start, a następnie kliknij przycisk Uruchom.

  2. Wpisz regedit, a następnie kliknij przycisk OK.

  3. Użyj odpowiedniej metody:

    • W programie Microsoft Access 2000 w programie Microsoft Access 2002 i Microsoft Office Access 2003 uruchomionym w 32-bitowym systemie operacyjnym Windows użyj Edytora rejestru, aby zlokalizować następujący klucz rejestru:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Silniki\Jet 4.0

      W programie Microsoft Access 2000 w programie Microsoft Access 2002 i Microsoft Office Access 2003 uruchomionym w 64-bitowym systemie operacyjnym Windows użyj Edytora rejestru, aby zlokalizować następujący klucz rejestru:

      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Jet 4.0

    • W programie Microsoft Office Access 2007 działającym w 32-bitowym systemie operacyjnym Windows użyj Edytora rejestru, aby zlokalizować następujący klucz rejestru:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Aparat łączności dostępu\Aparaty\ACE

      W programie Microsoft Office Access 2007 działającym w 64-bitowym systemie operacyjnym Windows użyj Edytora rejestru, aby zlokalizować następujący klucz rejestru:

      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\12.0\Aparat łączności dostępu\Silniki\ACE

    • W programie Microsoft Access 2010 uruchomionym w 32-bitowym systemie operacyjnym Windows użyj Edytora rejestru, aby zlokalizować następujący klucz rejestru:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Aparat łączności dostępu\Aparaty\ACE

      W programie Microsoft Office Access 2010 działającym w 64-bitowym systemie operacyjnym Windows użyj Edytora rejestru, aby zlokalizować następujący klucz rejestru:

      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Aparat łączności dostępu\Silniki\ACE

    • W programie Microsoft Access 2013 uruchomionym w 32-bitowym systemie operacyjnym Windows użyj Edytora rejestru, aby zlokalizować następujący klucz rejestru:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\Aparat łączności dostępu\Aparaty\ACE

      W programie Microsoft Office Access 2013 działającym w 64-bitowym systemie operacyjnym Windows użyj Edytora rejestru, aby zlokalizować następujący klucz rejestru:

      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Aparat łączności dostępu\Silniki\ACE

    • W programie Microsoft Access 2016 uruchomionym w 32-bitowym systemie operacyjnym Windows użyj Edytora rejestru, aby zlokalizować następujący klucz rejestru:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\16.0\Aparat łączności dostępu\Aparaty\ACE

      W programie Microsoft Office Access 2016 działającym w 64-bitowym systemie operacyjnym Windows użyj Edytora rejestru, aby zlokalizować następujący klucz rejestru:

      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\16.0\Aparat łączności dostępu\Aparaty\ACE

  4. W prawym okienku Edytora rejestru kliknij dwukrotnie pozycję MaxLocksPerFile.

  5. W oknie dialogowym Edytowanie wartości DWORD kliknij pozycję Dziesiętne.

  6. W razie potrzeby zmodyfikuj wartość pola Dane wartości, a następnie kliknij przycisk OK.

Należy zauważyć, że ta metoda zmienia ustawienie rejestru dla wszystkich aplikacji, które używają aparatu bazy danych Microsoft Jet w wersji 4.0.

Metoda 2: Aby tymczasowo zmienić plik MaxLocksPerFile za pomocą metody SetOption

Uwaga

Przykładowy kod w tym artykule używa obiektów dostępu do danych firmy Microsoft. Aby ten kod działał poprawnie, należy odwołać się do biblioteki obiektów DAO 3.6 firmy Microsoft. W tym celu kliknij polecenie Odwołania w menu Narzędzia w Edytorze Visual Basic i upewnij się, że jest zaznaczone pole wyboru Biblioteka obiektów DAO 3.6 firmy Microsoft.

SetOption Metoda tymczasowo zastępuje domyślną liczbę blokad na plik. Podczas ustawiania klucza rejestru MaxLocksPerFile ustawia się domyślną liczbę blokad na plik. Nową wartość można ustawić przy użyciu SetOption metody. Nowa wartość jest prawidłowa do momentu zamknięcia obiektu DBEngine. Aby użyć metody 2, wykonaj następujące kroki:

  1. Otwórz program Microsoft Access.
  2. Otwórz bazę danych, a następnie naciśnij klawisze Alt+F11, aby uruchomić edytor języka Visual Basic.
  3. W oknie Microsoft Visual Basic — Database Name <>-[Nazwa < modułu> (Kod)] kliknij polecenie Natychmiastowe okno w menu Widok.
  4. W oknie natychmiastowymwprowadź następujący kod.

Dao. DBEngine.SetOption dbmaxlocksperfile,15000 5. Naciśnij klawisz ENTER, aby uruchomić wiersz kodu.

Uwaga Spowoduje to tymczasowe ustawienie wartości MaxLocksPerFile na 15 000.

Aby przetworzyć duże transakcje, ustaw wartość MaxLocksPerFile, aby spełnić wymagania, a następnie uruchom transakcje w sesji.

Zmiany wprowadzone w ustawieniu MaxLocksPerFile przy użyciu metody SetOption są dostępne tylko dla bieżącej sesji.

Więcej informacji

Ustawienie MaxLocksPerFile określa maksymalną liczbę blokad umieszczanych przez firmę Microsoft Jet w pliku. Domyślna wartość MaxLocksPerFile wynosi 9500. Nie należy jednak zmieniać tej wartości, jeśli pracujesz na serwerze Novell NetWare, ponieważ maksymalna liczba blokad rekordów serwera na połączenie wynosi 10 000.