"Anzahl der Dateifreigabesperren wurde überschritten..." Fehler bei der Verarbeitung großer Transaktionen

Hinweis

Office 365 ProPlus wird in Microsoft 365-Apps für Unternehmen umbenannt. Weitere Informationen zu dieser Änderung finden Sie in diesem Blogbeitrag.

Problembeschreibung

Wenn ein oder mehrere Benutzer viele Transaktionen in einer Mehrbenutzerumgebung verarbeiten, können die Transaktionen mit der folgenden Fehlermeldung fehlschlagen:

Anzahl der Dateisperrungen überschritten. Erhöhen Sie den Registryeintrag für MaxLocksPerFile.

Ursache

Der Fehler tritt auf, wenn die Anzahl der sperren, die zum Ausführen einer Transaktion erforderlich sind, die maximale Anzahl von Sperren pro Datei überschreitet.

Problemumgehung

Wichtig: Dieser Abschnitt, die Methode oder die Aufgabe enthält Schritte, mit denen Sie erfahren, wie Sie die Registrierung ändern. Durch die falsche Bearbeitung der Registrierung können schwerwiegende Probleme verursacht werden. Daher ist es wichtig, bei der Ausführung der folgenden Schritte sorgfältig vorzugehen. Für zusätzlichen Schutz sichern Sie die Registrierung, bevor Sie sie ändern. Sie können die Registrierung wiederherstellen, wenn ein Problem auftritt. Weitere Informationen zum Sichern und Wiederherstellen der Registrierung finden Sie unter der folgenden Artikelnummer, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

322756 Sichern und Wiederherstellen der Registrierung in Windows

Um dieses Problem zu umgehen, erhöhen Sie die maximale Anzahl von Sperren pro Datei. Verwenden Sie dazu eine der folgenden Methoden.

Methode 1: Festlegen des Registrierungsschlüssels auf MaxLocksPerFile, um die maximale Anzahl von Sperren pro Datei zu erhöhen

  1. Klicken Sie auf Start und anschließend auf Ausführen.

  2. Geben Sie regedit ein, und klicken Sie dann auf OK.

  3. Suchen Sie je nach Ihrer Access-Installation den folgenden Registrierungsschlüssel:

    Windows Installation des Installationsprogramms (MSI)

    • Für die 32-Bit-Version von Access, die auf der 32-Bit-Version von Windows ausgeführt wird, oder für die 64-Bit-Version von Access, die auf der 64-Bit-Version von Windows

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\<x.0>\Access Connectivity Engine\Engines\ACE

    • Für die 32-Bit-Version von Access, die auf der 64-Bit-Version von Windows

      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\<x.0>\Access Connectivity Engine\Engines\ACE

    Klick-und-Los-Installation

    • Für die 32-Bit-Version von Access, die auf der 32-Bit-Version von Windows ausgeführt wird, oder für die 64-Bit-Version von Access, die auf der 64-Bit-Version von Windows

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Microsoft\Office\<x.0>\Access Connectivity Engine\Engines\ACE

    • Für die 32-Bit-Version von Access, die auf der 64-Bit-Version von Windows

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Wow6432Node\Microsoft\Office\<x.0>\Access Connectivity Engine\Engines\ACE

    Hinweis

    Der <x.0> Platzhalter stellt Ihre Version von Office dar (16.0 = Office 2016, Office 2019, Office LTSC 2021 oder Microsoft 365, 15.0 = Office 2013).

  4. Doppelklicken Sie im rechten Bereich des Registrierungs-Editors auf "MaxLocksPerFile".

  5. Wählen Sie im Dialogfeld DWORD-Wert bearbeiten die Option "Dezimal" aus.

  6. Ändern Sie den Wert des Felds "Wertdaten" nach Bedarf, und wählen Sie dann OK aus.

Beachten Sie, dass diese Methode die Registrierungseinstellung für alle Anwendungen ändert, die Version 4.0 des Microsoft Jet-Datenbankmoduls verwenden.

Methode 2: Verwenden der SetOption-Methode zum vorübergehenden Ändern von MaxLocksPerFile

Hinweis

Im Beispielcode in diesem Artikel werden Microsoft Data Access-Objekte verwendet. Damit dieser Code ordnungsgemäß ausgeführt werden kann, müssen Sie auf die Microsoft DAO 3.6-Objektbibliothek verweisen. Klicken Sie dazu im Visual Basic Editor auf "Verweise" im Menü "Extras", und stellen Sie sicher, dass das Kontrollkästchen "Microsoft DAO 3.6-Objektbibliothek" aktiviert ist.

Die SetOption-Methode überschreibt vorübergehend die Standardanzahl von Sperren pro Datei. Sie legen die Standardanzahl der Sperren pro Datei fest, wenn Sie den Registrierungsschlüssel "MaxLocksPerFile" festlegen. Sie legen den neuen Wert mithilfe der SetOption-Methode fest. Der neue Wert ist gültig, bis Sie das DBEngine-Objekt schließen. Gehen Sie folgendermaßen vor, um Methode 2 zu verwenden:

  1. Öffnen Sie Microsoft Access.

  2. Öffnen Sie eine Datenbank, und drücken Sie alt+F11, um den editor Visual Basic zu starten.

  3. Wählen Sie im Fenster Microsoft Visual Basic <Database Name> - -[ <Module Name> (Code)] im Menü "Ansicht" die Option "Direktfenster" aus.

  4. Geben Sie im Direktfenster den folgenden Code ein:

    DAO.DBEngine.SetOption dbmaxlocksperfile,15000

  5. Drücken Sie die EINGABETASTE, um die Codezeile auszuführen. Mit diesem Befehl wird der MaxLocksPerFile-Wert vorübergehend auf 15.000 festgelegt.

Um große Transaktionen zu verarbeiten, legen Sie den MaxLocksPerFile-Wert so fest, dass er Ihren Anforderungen entspricht, und führen Sie dann die Transaktionen in der Sitzung aus.

Änderungen, die Sie mithilfe der SetOption-Methode an der MaxLocksPerFile-Einstellung vornehmen, sind nur für die aktuelle Sitzung verfügbar.

Weitere Informationen

Die MaxLocksPerFile-Einstellung bestimmt die maximale Anzahl von Sperren, die Microsoft Jet für eine Datei platziert. Der MaxLocksPerFile-Standardwert ist 9.500. Ändern Sie diesen Wert jedoch nicht, wenn Sie auf einem Verbund NetWare-Server arbeiten, da die maximale Anzahl von Serverdatensatzsperren pro Verbindung 10.000 beträgt.