Ważne: w tym artykule zamieszczono informacje dotyczące sposobu modyfikowania rejestru. Przed zmodyfikowaniem rejestru należy wykonać jego kopię zapasową. Należy się upewnić, że znany jest sposób przywrócenia rejestru w razie wystąpienia problemu. Aby uzyskać więcej informacji dotyczących wykonywania kopii zapasowej, przywracania i modyfikowania rejestru, kliknij następujący numer artykułu w celu wyświetlenia go z bazy wiedzy Microsoft Knowledge Base:

322756 Jak wykonywać kopię zapasową rejestru, edytować go i przywracać w systemach Windows XP i Windows Server 2003

Symptomy

Jeżeli jeden lub kilku użytkowników przetwarza wiele transakcji w środowisku wielu użytkowników, transakcje mogą kończyć się niepowodzeniem i może być wyświetlany następujący komunikat o błędzie:

Przekroczony licznik blokad współużytkowania plików. Zwiększ wartość wpisu rejestru MaxLocksPerFile.

Przyczyna

Ten błąd występuje, jeżeli liczba blokad wymaganych do wykonania transakcji przekracza maksymalną liczbę blokad dla pliku.

Obejście problemu

Ostrzeżenie: Niepoprawne zmodyfikowanie rejestru przy użyciu Edytora rejestru lub innej metody może być przyczyną poważnych problemów. W przypadku tych problemów może być wymagane ponowne zainstalowanie systemu operacyjnego. Firma Microsoft nie może zagwarantować, że rozwiązanie tych problemów będzie możliwe. Użytkownik modyfikuje rejestr na własną odpowiedzialność.

W celu obejścia tego problemu należy zwiększyć maksymalną liczbę blokad dla pliku. Aby to zrobić, skorzystaj z jednej z następujących metod.

Metoda 1: Ustawienie klucza rejestru MaxLocksPerFile w celu zwiększenia maksymalnej liczby blokad dla pliku

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

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

  3. Skorzystaj z odpowiedniej metody:

    • W programach Microsoft Access 2000, Microsoft Access 2002 i Microsoft Office Access 2003, uruchomionych w 32-bitowym systemie operacyjnym Windows, użyj Edytora rejestru do zlokalizowania następującego podklucza rejestru:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Jet 4.0
      W programach Microsoft Access 2000, Microsoft Access 2002 i Microsoft Office Access 2003, uruchomionych w 64-bitowym systemie operacyjnym Windows, użyj Edytora rejestru do zlokalizowania następującego podklucza rejestru:

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

    • W programie Microsoft Office Access 2007, uruchomionym w 32-bitowym systemie operacyjnym Windows, użyj Edytora rejestru do zlokalizowania następującego podklucza rejestru:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Access Connectivity Engine\Engines\ACE
      W programie Microsoft Office Access 2007, uruchomionym w 64-bitowym systemie operacyjnym Windows, użyj Edytora rejestru do zlokalizowania następującego podklucza rejestru:

      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\12.0\Access Connectivity Engine\Engines\ACE

  4. W prawym okienku Edytora rejestru kliknij dwukrotnie wartość MaxLocksPerFile.

  5. W oknie dialogowym Edytowanie wartości DWORD kliknij opcję Dziesiętny.

  6. Zmodyfikuj wartość w polu Dane wartości zgodnie z wymaganiami, a następnie kliknij przycisk OK.

Uwaga: Ta metoda umożliwia zmianę ustawienia rejestru dla wszystkich aplikacji używających aparatu bazy danych Microsoft Jet w wersji 4.0.

Metoda 2: Użycie metody SetOption do tymczasowej zmiany wartości MaxLocksPerFile

Uwaga: W przykładowym kodzie przedstawionym w tym artykule używane są obiekty dostępu do danych Microsoft Data Access Objects. Aby ten kod działał poprawnie, trzeba odwołać się do biblioteki obiektów Microsoft DAO 3.6 Object Library. Aby to zrobić, kliknij polecenie References w menu Tools w edytorze Visual Basic i upewnij się, że pole wyboru Microsoft DAO 3.6 Object Library jest zaznaczone.


Metoda SetOption tymczasowo zastępuje domyślną liczbę blokad dla pliku. Domyślna liczba blokad dla pliku jest ustawiana podczas zmiany klucza rejestru MaxLocksPerFile . Nowa wartość jest ustawiana przy użyciu metody SetOption. Nowa wartość jest prawidłowa do chwili, kiedy zostanie zamknięty obiekt DBEngine. Aby skorzystać z 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 Visual Basic.

  3. W oknie Microsoft Visual Basic -<nazwa bazy danych>-[<nazwa modułu> (kod)] kliknij polecenie Immediate Window w menu View.

  4. W Immediate Window wprowadź następujący kod.

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

    Uwaga: Wykonanie tej operacji powoduje tymczasowe ustawienie wartości MaxLocksPerFile równej 15 000.

Aby przetwarzać duże transakcje, należy ustawić wartość MaxLocksPerFile zgodnie z wymaganiami, a następnie uruchomić transakcje w sesji.

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

Więcej informacji

Ustawienie MaxLocksPerFile określa maksymalną liczbę blokad inicjowanych przez aparat Microsoft Jet dla pliku. Wartość domyślna MaxLocksPerFile wynosi 9 500. Nie należy jednak zmieniać tej wartości w przypadku pracy na serwerze Novell NetWare, ponieważ maksymalna liczba blokad dla połączenia serwera jest równa 10 000.
Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

305995 Błąd „3050 Nie udało się zablokować pliku” podczas łączenia się z bazą danych aparatu Jet na serwerze Novell

Materiały referencyjne

Aby uzyskać więcej informacji, zobacz następujące artykuły z bazy wiedzy Microsoft Knowledge Base:

198633 Podczas synchronizowania dwóch replik w programie Access 2000 pojawia się komunikat o błędzie „Przekroczona liczba blokad współużytkowania pliku” .

209940 ACC2000: Komunikat o błędzie: Za mało miejsca na dysku lub za mało pamięci

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów firmy Microsoft

Czy te informacje były pomocne?

Jaka jest jakość tłumaczenia?
Co wpłynęło na Twoje wrażenia?

Dziękujemy za opinię!

×