Belirtiler
Microsoft SQL Server 2012 veya Microsoft SQL Server 2014 uygulamasında birleştirme çoğaltması kullandığınızı varsayalım. Eşitleme işleminin bir parçası olarak, Birleştirme Aracısı oturumda yeni nesil oluşturur. Kilitlenme veya zaman aşımı gibi bir nedenden ötürü işlem yapıldığında işlem kilitlenme kurbanı olarak seçilir ve işlem geri alınırsa, forthın oluşturma makları 'nda MSinternal_makegeneration_inprog uygulama kilidi için büyük bir engelleme zinciri olabilir ve daha önce bahsedilme
Neden
Nesil işlemin güvenliğini sağlamaya yardımcı olmak için kullanılan uygulama kilidi, oturum düzeyi uygulama kilidi. Oluşturma işlemi sırasında bir kilitlenme algılandığında, yalnızca işlem geri alınır ancak oturum oturumu kapatılır. Oturum düzeyi uygulama kilidini bırakmak için oturumun oturumu kapatması gerekir. Bu nedenle, yeniden deneme mantığının tasarımı nedeniyle (birleştirme çoğaltmasında başarısızlık sırasında oluşturma sırasında oturum kapatmayacaktır), ilk oluşturma işlemi kilitlenmeyle başarısız olursa, alınan oturum kilidi (MSinternal_makegeneration_inprog) işlem geri alma sırasında kullanılamaz. Bu, forthın oluşturma sürecinde kilitleme isteklerinin zincirini engellemeye neden olur. Baş engelleyicisini, kilitlenmeyle başarısız olan ilk nesil istek olarak görüntülenir. Düzeltmeden önce, SQL Server başarılı oluşturma işlemi için yalnızca kilidi temizler. Oturum kapatıldıktan sonra bir kilitlenme oluşursa, artık oturum kapatma kilidi olur.
Çözüm
Bu sorun ilk olarak SQL Server 'ın aşağıdaki toplu güncelleştirmesinde giderilmiştir.
SQL Server 2014 için toplu güncelleştirme 5 /en-us/help/3011055
SQL Server 2012 SP2 için toplu güncelleştirme 3 /en-us/help/3002049
Her bir SQL Server toplu güncelleştirmesi, önceki toplu güncelleştirmeyle birlikte gelen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. En son SQL Server güncelleştirmelerini gözden geçirin:
Durum
Microsoft bu sorunun "Uygulandığı öğe" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.