Jesteś obecnie w trybie offline. Czekamy na ponowne połączenie z Internetem.

PRB: Błąd „Przekroczona liczba blokad współużytkowania pliku…” podczas przetwarzania dużych transakcji

Zakończono świadczenie pomocy technicznej dla pakietu Office 2003

Firma Microsoft zakończyła świadczenie pomocy technicznej dla pakietu Office 2003 8 kwietnia 2014. Ta zmiana wpłynęła na Twoje aktualizacje oprogramowania i opcje zabezpieczeń. Dowiedz się, co to oznacza dla Ciebie i jak zapewnić sobie kontynuację ochrony.

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
ACC2003 ACC2007
Właściwości

Identyfikator artykułu: 815281 — ostatni przegląd: 01/09/2008 13:42:36 — zmiana: 8.3

  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • kberrmsg kbregistry kbprb KB815281
Opinia
t> tml>