"Dosya paylaşım kilidi sayısı aşıldı..." hatası

Belirtiler

Bir veya daha fazla kullanıcı çok kullanıcılı bir ortamda çok sayıda işlem işlediğinde, işlemler aşağıdaki hata iletisiyle başarısız olabilir:

Dosya paylaşım kilidi sayısı aşıldı. MaxLocksPerFile kayıt defteri girişini artırın.

Neden

İşlem gerçekleştirmek için gereken kilit sayısı dosya başına kilit sayısı üst sınırını aşarsa hata oluşur.

Geçici Çözüm

Önemli Bu bölüm, yöntem veya görev, kayıt defterini nasıl değiştireceğinizin anlatıldığı adımları içermektedir. Ancak kayıt defterini hatalı biçimde değiştirirseniz önemli sorunlar oluşabilir. Bu nedenle bu adımları dikkatle uyguladığınızdan emin olun. Ek koruma için kayıt defterini değiştirmeden önce yedeklemeyi unutmayın. Böylece, bir sorun oluşursa kayıt defterini daha sonra geri yükleyebilirsiniz. Kayıt defterini yedekleme ve geri yükleme hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:

322756 Windows'da kayıt defterini yedekleme ve geri yükleme

Bu sorunu geçici olarak çözmek için dosya başına kilit sayısı üst sınırını artırın. Bunu yapmak için aşağıdaki yöntemlerden birini kullanın.

Yöntem 1: Dosya başına kilit sayısı üst sınırını artırmak için kayıt defteri anahtarını MaxLocksPerFile olarak ayarlayın

  1. Başlat'a ve ardından Çalıştır'a tıklayın.

  2. yazın regeditve Tamam'a tıklayın.

  3. Access yüklemenize bağlı olarak aşağıdaki kayıt defteri anahtarını bulun:

    Windows Installer (MSI) yüklemesi

    • Windows'un 32 bit sürümünde çalışan Access'in 32 bit sürümü veya 64 bit Windows sürümünde çalışan Access'in 64 bit sürümü için

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

    • Windows'un 64 bit sürümünde çalışan Access'in 32 bit sürümü için

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

    Tıkla-Çalıştır yüklemesi

    • Windows'un 32 bit sürümünde çalışan Access'in 32 bit sürümü veya 64 bit Windows sürümünde çalışan Access'in 64 bit sürümü için

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

    • Windows'un 64 bit sürümünde çalışan Access'in 32 bit sürümü için

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

    Not

    <x.0> yer tutucusu, Office sürümünüzü temsil eder (16.0 = Office 2016, Office 2019, Office LTSC 2021 veya Microsoft 365, 15.0 = Office 2013).

  4. Kayıt Defteri Düzenleyici sağ bölmesinde MaxLocksPerFile öğesine çift tıklayın.

  5. DWORD Değerini Düzenle iletişim kutusunda Ondalık'ı seçin.

  6. Değer veri kutusunun değerini gerektiği gibi değiştirin ve tamam'ı seçin.

Bu yöntemin, Microsoft Jet veritabanı altyapısı sürüm 4.0 kullanan tüm uygulamalar için kayıt defteri ayarını değiştirdiğini unutmayın.

Yöntem 2: MaxLocksPerFile dosyasını geçici olarak değiştirmek için SetOption yöntemini kullanın

Not

Bu makaledeki örnek kodda Microsoft Veri Erişim Nesneleri kullanılmaktadır. Bu kodun doğru çalışması için Microsoft DAO 3.6 Nesne Kitaplığı'na başvurmanız gerekir. Bunu yapmak için, Visual Basic Düzenleyici Araçlar menüsünde Başvurular'a tıklayın ve Microsoft DAO 3.6 Nesne Kitaplığı onay kutusunun seçili olduğundan emin olun.

SetOption yöntemi, dosya başına varsayılan kilit sayısını geçici olarak geçersiz kılar. MaxLocksPerFile kayıt defteri anahtarını ayarlarken dosya başına varsayılan kilit sayısını ayarlarsınız. SetOption yöntemini kullanarak yeni değeri ayarlarsınız. Yeni değer, DBEngine nesnesini kapatana kadar geçerlidir. Yöntem 2'yi kullanmak için şu adımları izleyin:

  1. Microsoft Access'i açın.

  2. Veritabanını açın ve ardından Alt+F11 tuşlarına basarak Visual Basic düzenleyicisini başlatın.

  3. Microsoft Visual Basic -<Veritabanı Adı-[<Modül Adı>> (Kod)] penceresinde Görünümmenüsünden Hemen Pencere'yi seçin.

  4. Anlık Pencere'ye aşağıdaki kodu girin:

    DAO.DBEngine.SetOption dbmaxlocksperfile,15000

  5. Kod satırını çalıştırmak için ENTER tuşuna basın. Bu komut, MaxLocksPerFile değerini geçici olarak 15.000 olarak ayarlar.

Büyük işlemleri işlemek için MaxLocksPerFile değerini gereksiniminizi karşılayacak şekilde ayarlayın ve ardından işlemleri oturumda çalıştırın.

SetOption yöntemini kullanarak MaxLocksPerFile ayarında yaptığınız değişiklikler yalnızca geçerli oturum için kullanılabilir.

Daha fazla bilgi

MaxLocksPerFile ayarı, Microsoft Jet'in bir dosyaya yerleştireceği kilit sayısı üst sınırını belirler. Varsayılan MaxLocksPerFile değeri 9.500'dür. Ancak, bir Novell NetWare sunucusunda çalışıyorsanız, bağlantı başına en fazla sunucu kaydı kilit sayısı 10.000 olduğundan bu değeri değiştirmeyin.