Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

MaxLocksPerFile Error

Tipp Entwicklung VB for Applications

Mitglied: J0j0

J0j0 (Level 1) - Jetzt verbinden

08.07.2009, aktualisiert 03.08.2010, 10050 Aufrufe, 3 Kommentare

MaxLocksPerFile Error in MS Access

1. Variante:
DB Exklusive öffnen (Kein Multiuser mehr möglich)
Ändere "Set db = CurrentDb" auf:
Set db = DBEngine.OpenDatabase("F:\Test\testBE.mdb", True)

2. Variante Dauerhaft MaxLocks hochsetzen:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Jet 4.0
(Standard 9500)

3. Variante temporär für die aktuelle Sitzung
DBEngine.SetOption dbMaxLocksPerFile, 15000
Mitglied: Biber
08.07.2009 um 20:23 Uhr
Moin J0j0,

ja nee.... lass uns da noch ein bisschen dran feilen - das lass ich so nicht als Anleitung gelten.

[Als Tipp hätte ich ja nix gesagt...]

Was mir fehlt:
  • Wer wo wann überhaupt diesen "Fehler 3072" ("Anzahl der maximalen Dateisperrungen überschritten") unter welchen Umständen zu sehen bekommen könnte
  • Wer es sich denn überhaupt erlauben kann, eine MDB wie bei Variante 1 für sich ganz allein zu blocken
  • Oder die umgedrehte Seite der Medaille: Welcher Access-Normal-User in einem handelsüblichen Firmennetz darf denn was-auch-immer im HKLM-Hive der Registry rumfuckeln?
  • Welcher Fehler könnte mich nach zwei Minuten ereilen, wenn ich denn mal auf die Sahne haue und sage: "Hey, statt der vorgeschlagenen MaxLocksPerFile von 0x251c/9500dez stell ich mal 200000 ein, da bin ich dann auf der sicheren Seite."
( 2 Minuten später kommt: "Möglicherweise ist der Arbeitsspeicher für ... nicht ausreichend. Sichern Sie bitte noch nicht gespeicherte Daten..")

Ich weiss nicht, wo und bei was Dich diese MaxLocksPerFile-Grenze erwischt hat - bei einer Synchronisation, einem Massen-Update, einer Tabellenstrukturänderung oder einem Daten-Export.

In allen Fällen ist IMHO eher eine überlegte Portionierung der Transaktion (z.B. Commit nach je 5000 Datensätzen) sinnvoll oder, wenn es gar überhaupt nicht anders geht, eine Variante Deiner Variante 3
( aber nicht
DBEngine.SetOption dbMaxLocksPerFile, 15000
..sondern explizit
DAO.DBEngine.SetOption dbMaxBufferSize, nnnnn
DAO.DBEngine.SetOption dbMaxLocksPerFile, mmmmm
)

Dennoch ganz klar - die Strategie der Redmonder PraktikantInnen (und diese Strategie können wir nicht unterlaufen) ist
  • ALLE innerhalb einer Transaktion warum-auch-immer-gesperrten Datensätze bis zum Ende der Transaktion in ihrer vollen Satzlänge zu sperren.
  • dafür gibt es einerseits die 9500 (=ANZAHL der Sperrungen und deren Verwaltung).
  • dazu kommt allerdings der Arbeitsspeicherbedarf platt gesagt 9500 mal Datensätzlänge
  • wenn Du NICHT explizit das UseTransaction-Property geändert hast (z.B. mit KlickiBunti bei den "Abfrageeingeschaften" einer "Aktualisungsabfrage" mit Setzen der Eigenschaft "Transaktionen verwenden" auf "Nein"), dann wird die Gesamt-Aktion ohnehin portioniert/mit mehreren Commit-Punkten versehen.
  • aber eine vollständige Freigabe der Ressourcen erfolgt erst, enn explizit das oberste aktive DB-Objekt (im Normalfall CurrentDB()) destroyed wird. Sonst wird "nur" nach einem Commit/EndTransaction diese Sperren-verwaltung freigegeben.
Ein Hochsetzen der MaxLocksPerFile auf einen Mondwert entspricht de facto einem "Setze Transaktionen auf Nein", was auf deutscher bedeutet : "No way back - wenn irgendwann irgendwo beim Updaten von Satz 23456 von 25000 ein Fehler auftritt, dann brich ab und lass alles in dem Zustand, in dem es jetzt halt ist."

Na ja, egal... was ich nur sagen wollte: nach dem Lesen einer Anleitung sollte die geneigte Leserin/der gramgebeugte Leser eigentlich besser verstehen und wissen, an welchen Stellschrauben er drehen sollte und warum und wann lieber nicht.

Von daher meine Bitte:
  • entweder "Anleitung" und dann aber noch etwas Butter bei die Fische mit dem Button "Editieren"
  • oder umstufen als "Tipp".

Natürlich würde mich Möglichkeit A mehr freuen... ich will ja auch was lernen hier.

Grüße
Biber
Bitte warten ..
Mitglied: 80220
09.07.2009 um 00:19 Uhr
Als Anleitung etwas mager um nicht zu schreiben total daneben.
Bitte warten ..
Mitglied: J0j0
09.07.2009 um 09:23 Uhr
Hey zusammen,

sorry ich hab einfach irgendwas ausgewählt!
Wer mich die Tage ranmachen und das ausführlicher Schreiben!

Lg
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Windows 8
gelöst Active Directory Default User.v2 Profile - Windows 8.1 Apps Error (4)

Frage von adm2015 zum Thema Windows 8 ...

Windows Server
Daten löschen - Windows Error Reporting (WER) (2)

Frage von Otto1699 zum Thema Windows Server ...

KVM
gelöst Proxmox KVM - Disk read error nach verschieben der disk (6)

Frage von ketanest112 zum Thema KVM ...

Windows Update
gelöst WSUS Server: Content: Error:Forbidden (403) (2)

Frage von EDV-Oellerking zum Thema Windows Update ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (32)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...