Sie sind zurzeit offline. Es wird auf die erneute Herstellung einer Internetverbindung gewartet.

Fehlermeldung "Sperrung für Anzahl gemeinsam benutzter Dateien überschritten" bei Synchronisation zweier Replikate in Access 2000

Dieser Artikel wurde zuvor veröffentlicht unter D40250
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
198633 You receive an "File sharing lock count exceeded" error message when you synchronize two replicas in Access 2000
In Artikel 173006 wird dieses Thema für Microsoft Access 97 behandelt.
Wichtig: Dieser Artikel enthält Informationen zum Bearbeiten der Registrierung. Bevor Sie die Registrierung bearbeiten, vergewissern Sie sich bitte, dass Sie die Registrierung wiederherstellen können, falls ein Problem auftritt. Weitere Informationen zum Erstellen einer Sicherungskopie, zum Wiederherstellen und Bearbeiten der Registrierung finden Sie im folgenden Artikel der Microsoft Knowledge Base:
256986 Beschreibung der Microsoft Windows-Registrierung

Fortgeschritten: Erfordert Fachkenntnisse in den Bereichen Codierung und Interoperabilität sowie Mehrbenutzerfähigkeiten.
Problembeschreibung
Wenn Sie zwei Replikate synchronisieren, wird möglicherweise die folgende sinngemäße Fehlermeldung angezeigt:
Synchronisierung zwischen '<Replikat1.mdb>' und '<Replikat2.mdb>' fehlgeschlagen.

Sperrung für Anzahl gemeinsam benutzter Dateien überschritten (Fehler 3052).
Dieser Fehler kann auch auftreten, wenn Sie eine Visual Basic für Applikationen-Prozedur ausführen, die die Methode Synchronize verwenden.
Ursache
Ein Replikat der Replikatgruppe enthält zu viele Änderungen. Die Synchronisierung kann daher nicht erfolgreich abgeschlossen werden. Wenn beispielsweise die Größe eines der Replikate um 100 Megabyte (MB) gestiegen ist, da Sie eine große Anzahl neuer Datensätze hinzugefügt haben, wird diese Fehlermeldung möglicherweise angezeigt. Das Replikat, das zu viele Änderungen enthält, ist möglicherweise die Datenbank, von der Sie gerade die Synchronisierung ausführen, oder es kann sich um ein anderes Replikat der Replikatgruppe handeln.
Lösung
In Microsoft Access 2000 können Sie die Vorteile einer Funktion nutzen, die es Ihnen erlaubt, den Wert für die Einstellung MaxLocksPerFile für Microsoft Jet Database Engine 4.0 zu erhöhen, indem Sie ihn in der Windows-Registrierung bearbeiten. Der Standardwert dieser Einstellung ist 9500. Jedoch empfiehlt sich das Ändern dieses Wertes nicht, wenn sich eines der Replikate auf einem Novell Netware-Server befindet, da die maximale Anzahl der Datensätze bis zur Sperrung pro Verbindung dort 10000 beträgt. Wenn sich beide Replikate auf Servern befinden, die Microsoft Windows NT 4.0 oder Microsoft Windows 95 oder höher ausführen, wird der maximale Wert für diese Einstellung nur durch die verfügbaren Ressourcen eingeschränkt.

Achtung: Die unkorrekte Verwendung des Registrierungseditors kann schwerwiegende Probleme verursachen, die das gesamte System betreffen und eine Neuinstallierung des Betriebssystems erforderlich machen. Microsoft kann nicht garantieren, dass Probleme, die von einer falschen Verwendung des Registrierungseditors herrühren, behoben werden können. Benutzen Sie den Registrierungseditor auf eigene Verantwortung.
  1. Beenden Sie Microsoft Access.
  2. Klicken Sie auf Start und anschließend auf Ausführen.
  3. Geben Sie im Feld Öffnen den Befehl regedit ein.
  4. Suchen Sie den Registrierungsordner HKEY_LOCAL_MACHINE.
  5. Erweitern Sie den Ordner HKEY_LOCAL_MACHINE, bis Sie den Ordner SOFTWARE\Microsoft\Jet\4.0\Engines\Jet 4.0 gefunden haben.
  6. Klicken Sie auf den Ordner Jet 4.0, um dessen Inhalt anzuzeigen.
  7. Klicken Sie im Menü Bearbeiten auf Ändern.
  8. Wählen Sie im Dialogfeld zum Bearbeiten des DWORD-WertsDezimal aus, und geben Sie einen größeren Wert im Feld für Werte ein.
  9. Klicken Sie auf OK, um die Einstellungen zu speichern.
  10. Beenden Sie den Registrierungseditor.
  11. Starten Sie Microsoft Access, und synchronisieren Sie die Replikate.
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Weitere Informationen
Die Einstellung MaxLocksPerFile erlaubt es der Microsoft Jet-Datenbank-Engine, große Transaktionen ohne Überschreiten einer festgelegten Datensatzgrenze abzuschließen. Anstatt diese Beschränkung zu überschreiten, teilt die Jet-Datenbank-Engine eine Transaktion in zwei oder mehr Teile. Nachdem ein Teil übertragen wurde, gibt die Jet-Datenbank-Engine die Sperrungen (Locks) wieder frei, so dass sie erneut verwendet werden können. Aus diesem Grunde sind weniger Sperrungen zum Abschließen der Transaktion erforderlich. Dies verhindert, dass ein Novell Netware-Server abstürzt, bei dem die maximale Anzahl von Datensätzen pro Verbindung auf 10000 begrenzt ist, wenn dieser Wert überschritten wird.

Die Jet-Datenbank-Engine unterteilt die Transaktion jedoch nicht, wenn zwei Replikate synchronisiert werden. Wenn die Transaktion nicht innerhalb der in der Einstellung MaxLocksPerFile festgelegten Beschränkung abgeschlossen werden kann, sofern die Transaktion nicht unterteilt wird, erfolgt die Anzeige der im Abschnitt "Problembeschreibung" beschriebenen Fehlermeldung, und die Synchronisierung wird nicht ausgeführt.

Schritte zum Reproduzieren des Problems

Warnung: Für die folgende Anleitung ist es erforderlich, etwa 400 MB freien Speicherplatz auf der Festplatte zu schaffen. Die Beispielprozedur füllt eine Tabelle mit einer großen Menge von Daten. Das Ausführen dieser Prozedur kann lange dauern. Während dieser Zeit steht Ihre CPU nicht zur Verfügung.
  1. Starten Sie Microsoft Access, und öffnen Sie eine neue, leere Datenbank.
  2. Erstellen Sie folgende Tabelle:

    FeldnameTypFeldgröße
    IDZahlLong Integer
    Feld1Text50
    Feld2 Text50
    Feld3 Text50
    Feld4 Text50
  3. Speichern Sie diese Tabelle unter dem Namen tblTable1. Wenn Sie gefragt werden, ob Sie einen Primärschlüssel erstellen möchten, klicken Sie auf Nein.
  4. Zeigen Sie im Menü Extras auf Replikation, und klicken Sie anschließend auf Replikat erstellen. Wenn Sie zum Schließen der Datenbank aufgefordert werden, klicken Sie aufJa, Klicken Sie auf Neins, wenn Sie zum Erstellen einer Sicherungskopie aufgefordert werden.
  5. Notieren Sie im Dialogfeld Speicherort des neuen Replikats den Standort und den Namen des neuen Replikats. Klicken Sie auf OK.
  6. Klicken Sie auf OK, wenn Sie eine Meldung erhalten, dass der Design-Master erfolgreich erstellt wurde.
  7. Öffnen Sie ein neues, leeres Modul.
  8. Klicken Sie im Menü Extras auf Verweise.
  9. Führen Sie einen Bildlauf durch die verfügbaren Verweise durch, und aktivieren Sie das Kontrollkästchen für die Microsoft DAO 3.6 Object Library, indem Sie darauf klicken. Klicken Sie danach auf OK.
  10. Geben Sie folgende Prozedur ein:
    Function Filler(lngNumRecs As Long)    Dim lngLoopCount As Long    Dim strFillerString As String    Dim db As Database    Dim rs As Recordset    strFillerString = ""    For lngLoopCount = 1 To 40        strFillerString = strFillerString & "x"    Next lngLoopCount    Set db = CurrentDb    Set rs = db.OpenRecordset("tblTable1")    For lngLoopCount = 1 To lngNumRecs        rs.AddNew        rs![ID] = lngLoopCount        rs![Field1] = strFillerString        rs![Field2] = strFillerString        rs![Field3] = strFillerString        rs![Field4] = strFillerString        rs.Update    Next lngLoopCount    db.Close    MsgBox "Process Completed."End Function					
  11. Speichern Sie das Modul unter dem Namen "Modul1". Geben Sie folgende Zeile im Direktfenster ein, und drücken Sie die [EINGABETASTE]:
    ?Filler(500000)						
    HinweisDie Ausführung dieser Prozedur kann lange dauern und erfordert möglicherweise bis zu 400 MB freien Speicherplatz auf Ihrem Festplattenlaufwerk. Fahren Sie mit dem nächsten Schritt fort, nachdem der Vorgang abgeschlossen ist.
  12. Zeigen Sie im Menü Extras auf Replikation, und klicken Sie dann auf Jetzt synchronisieren.
  13. Klicken Sie im Dialogfeld Datenbank '<Name>' synchronisieren auf OK.
  14. Klicken Sie auf JA, um die Datenbank zu schließen und die Synchronisierung zu starten.
Es erscheint eine Statusanzeige mit der Meldung "Synchronisiert Replikate". Schließlich wird jedoch die im Abschnitt "Problembeschreibung" beschriebene Fehlermeldung angezeigt.
Verweise
Weitere Informationen zur Einstellung von "MaxLocksPerFile" finden Sie in der integrierten Hilfe von Microsoft Access. Klicken Sie im Menü ? auf Microsoft Access-Hilfe und geben Sie Microsoft Jet 4.0-Datenbankengine initialisieren in den Office- oder Antwort-Assistenten ein. Klicken Sie danach auf Suchen, um das Thema anzuzeigen.

Weitere Informationen zur Replikation finden Sie im folgenden Artikel der Microsoft Knowledge Base:
190766 Von MSDN Online Library unterstützte Jet 4.0-Replikation-White-Papers
buffer
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Eigenschaften

Artikelnummer: 198633 – Letzte Überarbeitung: 01/21/2006 18:10:27 – Revision: 3.0

  • Microsoft Access 2000 Standard Edition
  • kbdatabase kbvba kbjet kbbug kberrmsg kbnofix KB198633
Feedback