"Dateifreigabe-Sperr Anzahl ü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, schlagen die Transaktionen möglicherweise mit der folgenden Fehlermeldung fehl:

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

Ursache

Der Fehler tritt auf, wenn die Anzahl der zum Ausführen einer Transaktion erforderlichen sperren 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. Es können jedoch schwerwiegende Probleme auftreten, wenn Sie die Registrierung falsch bearbeiten. Stellen Sie daher sicher, dass Sie die folgenden Schritte sorgfältig durchführen. 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 im folgenden Artikel der Microsoft Knowledge Base:

322756 Vorgehensweise sichern und Wiederherstellen der Registrierung in Windows

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

Methode 1: Legen Sie den Registrierungsschlüssel auf MaxLocksPerFile fest, um die maximale Anzahl von Sperren pro Datei zu verbessern.

  1. Klicken Sie auf Start, und klicken Sie dann auf Ausführen.

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

  3. Verwenden Sie die entsprechende Methode:

    • Verwenden Sie in Microsoft Access 2000, in Microsoft Access 2002 und in Microsoft Office Access 2003, die unter einem Windows-Betriebssystem mit 32 Bit ausführen, den Registrierungs-Editor, um den folgenden Registrierungsschlüssel zu suchen:

      HKEY_LOCAL_MACHINE \software\microsoft\jet\4.0\Engines\Jet 4,0

      Verwenden Sie in Microsoft Access 2000, in Microsoft Access 2002 und in Microsoft Office Access 2003, die unter einem Windows-Betriebssystem mit 64 Bit ausführen, den Registrierungs-Editor, um den folgenden Registrierungsschlüssel zu suchen:

      HKEY_LOCAL_MACHINE \software\wow6432node\microsoft\jet\4.0\Engines\Jet 4,0

    • Verwenden Sie in Microsoft Office Access 2007, die unter einem 32-Bit-Windows-Betriebssystem läuft, den Registrierungs-Editor, um den folgenden Registrierungsschlüssel zu finden:

      HKEY_LOCAL_MACHINE \software\microsoft\office\12.0\Access Connectivity Engine\Engines\ACE

      Verwenden Sie in Microsoft Office Access 2007, die unter einem 64-Bit-Windows-Betriebssystem läuft, den Registrierungs-Editor, um den folgenden Registrierungsschlüssel zu finden:

      HKEY_LOCAL_MACHINE \software\wow6432node\microsoft\office\12.0\Access Connectivity Engine\Engines\ACE

    • Verwenden Sie in Microsoft Access 2010, die unter einem 32-Bit-Windows-Betriebssystem läuft, den Registrierungs-Editor, um den folgenden Registrierungsschlüssel zu finden:

      HKEY_LOCAL_MACHINE \software\microsoft\office\14.0\Access Connectivity Engine\Engines\ACE

      Verwenden Sie in Microsoft Office Access 2010, die unter einem 64-Bit-Windows-Betriebssystem läuft, den Registrierungs-Editor, um den folgenden Registrierungsschlüssel zu finden:

      HKEY_LOCAL_MACHINE \software\wow6432node\microsoft\office\14.0\Access Connectivity Engine\Engines\ACE

    • Verwenden Sie in Microsoft Access 2013, die unter einem 32-Bit-Windows-Betriebssystem läuft, den Registrierungs-Editor, um den folgenden Registrierungsschlüssel zu finden:

      HKEY_LOCAL_MACHINE \software\microsoft\office\15.0\Access Connectivity Engine\Engines\ACE

      Verwenden Sie in Microsoft Office Access 2013, die unter einem 64-Bit-Windows-Betriebssystem läuft, den Registrierungs-Editor, um den folgenden Registrierungsschlüssel zu finden:

      HKEY_LOCAL_MACHINE \software\wow6432node\microsoft\office\15.0\Access Connectivity Engine\Engines\ACE

    • Verwenden Sie in Microsoft Access 2016, die unter einem 32-Bit-Windows-Betriebssystem läuft, den Registrierungs-Editor, um den folgenden Registrierungsschlüssel zu finden:

      HKEY_LOCAL_MACHINE \software\microsoft\office\16.0\Access Connectivity Engine\Engines\ACE

      Verwenden Sie in Microsoft Office Access 2016, das unter einem 64-Bit-Windows-Betriebssystem läuft, den Registrierungs-Editor, um den folgenden Registrierungsschlüssel zu finden:

      HKEY_LOCAL_MACHINE \software\wow6432node\microsoft\office\16.0\Access Connectivity Engine\Engines\ACE

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

  5. Klicken Sie im Dialogfeld DWORD-Wert bearbeiten auf Dezimal.

  6. Ändern Sie den Wert des Felds Wertdaten nach Bedarf, und klicken Sie dann auf OK.

Beachten Sie , dass diese Methode die Registrierungseinstellung für alle Anwendungen ändert, die Microsoft Jet-Datenbankmodulversion 4,0 verwenden.

Methode 2: Verwenden Sie die SetOption-Methode, um MaxLocksPerFile vorübergehend zu ändern.

Hinweis

Der Beispielcode in diesem Artikel verwendet Microsoft Data Access-Objekte. Damit dieser Code ordnungsgemäß ausgeführt wird, müssen Sie auf die Objektbibliothek von Microsoft DAO 3,6 verweisen. Klicken Sie dazu im Menü Extras des Visual Basic-Editors auf Verweise , 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 von Sperren pro Datei fest, wenn Sie den Registrierungsschlüssel MaxLocksPerFile festlegen. Der neue Wert wird mithilfe der SetOption-Methode festgelegt. Der neue Wert ist gültig, bis Sie das DBEngine-Objekt schließen. Führen Sie die folgenden Schritte aus, um Methode 2 zu verwenden:

  1. Öffnen Sie Microsoft Access.
  2. Öffnen Sie eine Datenbank, und drücken Sie dann ALT + F11, um den Visual Basic-Editor zu starten.
  3. Klicken Sie im Fenster Microsoft Visual Basic- < Datenbankname>-[ < Modulname> (Code)] auf Direktfenster im Menü Ansicht .
  4. Geben Sie im Fenster direktden folgenden Code ein.

DAO. Dbengine. SetOption dbmaxlocksperfile, 15000 5. Drücken Sie die EINGABETASTE, um die Codezeile auszuführen.

Hinweis: Dadurch 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 Ihre Anforderung erfüllt, und führen Sie dann die Transaktionen in der Sitzung aus.

Änderungen, die Sie an der MaxLocksPerFile-Einstellung mithilfe der SetOption-Methode 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 Standardwert für MaxLocksPerFile lautet 9.500. Ändern Sie diesen Wert jedoch nicht, wenn Sie auf einem Novell NetWare-Server arbeiten, da die maximalen Server Eintrags Sperren pro Verbindung 10.000 sind.