"Antalet fildelningslås har överskridits..." vid omfattande transaktionsbearbetning
Anteckning
Office 365 ProPlus byter namn till Microsoft 365-appar för företag. Mer information om den här ändringen finns i det här blogginlägget.
Symptom
När en eller flera användare bearbetar många transaktioner i en miljö med flera användare kan transaktionen misslyckas och följande felmeddelande visas:
Antalet låsta fildelningar har överskridits. Öka MaxLocksPerFile-registerposten.
Orsak
Felet inträffar om antalet lås som krävs för att utföra en transaktion överskrider det maximala antalet lås per fil.
Lösning
Viktigt! Det här avsnittet, den metod eller den uppgift som innehåller anvisningar om hur du ändrar registret. Det kan uppstå allvarliga problem om du gör detta felaktigt. Följ därför instruktionerna noga, och säkerhetskopiera registret innan du gör några ändringar i det. Då kan du återställa registret om det uppstår problem. Om du vill ha mer information om hur du både kan backa och återställa registret kan du klicka på följande artikelnummer och läsa artikeln i Microsoft Knowledge Base:
322756 Hur man säkerhetskopierar och återställer registret i Windows
Du kan komma runt det här problemet genom att öka det maximala antalet lås per fil. Detta gör du genom att använda någon av följande metoder.
Metod 1: Ställ in registernyckeln på MaxLocksPerFile för att öka det maximala antalet lås per fil
Klicka på Start och därefter på Kör.
Skriv
regeditoch klicka sedan på OK.Leta upp följande registernyckel beroende på Vilken Access-installation du har:
Windows (MSI)-installation
För 32-bitarsversionen av Access som körs på 32-bitarsversionen av Windows eller 64-bitarsversionen av Access som körs på 64-bitarsversionen av Windows
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\<x.0>\Access Connectivity Engine\Engines\ACEFör 32-bitarsversionen av Access som körs på 64-bitarsversionen av Windows
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\<x.0>\Access Connectivity Engine\Engines\ACE
Klicka-och-kör-installation
För 32-bitarsversionen av Access som körs på 32-bitarsversionen av Windows eller 64-bitarsversionen av Access som körs på 64-bitarsversionen av Windows
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Microsoft\Office\<x.0>\Access Connectivity Engine\Engines\ACEFör 32-bitarsversionen av Access som körs på 64-bitarsversionen av Windows
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Wow6432Node\Microsoft\Office\<x.0>\Access Connectivity Engine\Engines\ACE
Anteckning
Platshållaren representerar din version av <x.0> Office (16,0 = Office 2016, Office 2019, Office LTSC 2021 eller Microsoft 365, 15,0 = Office 2013).
I den högra rutan i Registereditorn dubbelklickar du på MaxLocksPerFile.
I dialogrutan Redigera DWORD-värde väljer du Decimal.
Ändra värdet i rutan Värdedata efter behov och välj sedan OK.
Observera att den här metoden ändrar registerinställningen för alla program som använder Microsoft Jet-databasmotorn version 4.0.
Metod 2: Använd metoden SetOption för att tillfälligt ändra MaxLocksPerFile
Anteckning
I exempelkoden i den här artikeln används Microsoft Data Access-objekt. För att den här koden ska köras korrekt måste du referera till Microsoft DAO 3.6-objektbiblioteket. Det gör du genom att klicka på Referenser på menyn Verktyg i Visual Basic Editor och kontrollera att kryssrutan Microsoft DAO 3.6-objektbibliotek är markerad.
Metoden SetOption åsidosätter tillfälligt standardantalet lås per fil. Du anger standardantalet lås per fil när du anger MaxLocksPerFile-registernyckeln. Du anger det nya värdet med metoden SetOption. Det nya värdet är giltigt tills du stänger DBEngine-objektet. Gör så här om du vill använda Metod 2:
Öppna Microsoft Access.
Öppna en databas och tryck sedan på Alt + F11 för att starta Visual Basic redigeraren.
I fönstret Microsoft Visual Basic - <Database Name> -[ <Module Name> (Kod)] väljer du Direktfönster på menyn Visa.
Ange följande kod i direktfönstret:
DAO.DBEngine.SetOption dbmaxlocksperfile,15000Tryck på RETUR för att köra kodraden. Med det här kommandot anges värdet för MaxLocksPerFile tillfälligt till 15 000.
Om du vill bearbeta stora transaktioner ställer du in värdet MaxLocksPerFile på att uppfylla dina krav och kör sedan transaktionen i sessionen.
Ändringar som du gör i MaxLocksPerFile-inställningen med hjälp av Metoden SetOption är endast tillgängliga för den aktuella sessionen.
Mer information
MaxLocksPerFile-inställningen bestämmer det maximala antalet lås Microsoft Jet places mot en fil. Standardvärdet för MaxLocksPerFile är 9 500. Men ändra inte det här värdet om du arbetar på en Novell NetWare-server, eftersom det maximala antalet lås för serverpost per anslutning är 10 000.