Makale numarası: 118552 - Son Gözden Geçirme: 22 Şubat 2007 Perşembe - Gözden geçirme: 5.3

SQL Server'da kilitlenme koşulu işleme açıklaması

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.
Hepsini aç | Hepsini kapa

Özet

Kilitlenme, burada 2 (veya daha fazla) işlemleri diğer bir kilit tutan bir kaynağa erişmeye bir koşuldur. Her işlem diğer kişinin kaynak isteği olduğundan, her iki işlemi tamamlanabilir. SQL Server bir kilitlenme algılandığında, en az olan bir hareketi geri alır 1205 uygulama ileti işleme hatası, saat ve verir. Hata iletisi 1205 Cari toplu işlemin sona erdirir ve geçerli işlem geri olarak alır.

Daha fazla bilgi

Bazı durumlarda, bir kilitlenme durumu (dbsqlexec dbsqlok veya dbresults gibi) bir DB-Library (DB Kitaplığı) komutu BAŞARıSıZ dönmek için neden olur. Bu her zaman programın her <a0>DB Kitaplığı</a0> komutundan döndürülen kodları denetlemesini sorumluluğundadır. DB Kitaplığı komutlar, bir HATA döndürdü, program toplu işi iptal etmek ve devam etmek denememeniz gerekir. Bazı durumlarda, sonraki komutlarının yürütülmesini toplu işleme devam etmek mümkündür. Ancak, çünkü bir kilitlenme durumu oluştu ve neden komutu geri alındı, daha sonra toplu iş komutları büyük bir olasılıkla daha ciddi bir hata (örneğin, bir nesne bulunamadı başarısız olur.



Diğer durumlarda, bir kilitlenme durumu BAŞARıSıZ dönmek bir DB Kitaplığı komutu neden olmaz. Bu durumu işlemek için <a0></a0>, program iletinin 1205 ileti işleyicisindeki denetleyin ve bu uygulamanız (örneğin Bölüm 4 "DB-Library işlevlerinde" SQL Server "Programmer's Reference c" dbsetuserdata altında bulunabilir) iletişim kurmak için dbsetuserdata işlevini kullanmalısınız. Program kilitlenme gösterge için her bir DB-Library çağrısından sonra sonra denetlemelisiniz ve kilitlenme algılanırsa, toplu işi iptal etmek.



1205 Kilitlenme iletiyi aldıktan sonra bir toplu işlemi iptal etmek gereksiz görünebilir, ancak sunucu her zaman bir kilitlenme durumu toplu işleme durdurulsun değil çünkü gerekli değildir. Toplu işlem iptal edilirse, yeni bir toplu iş gönderme denemesi bir DB-Library hata 10038 "Beklemede Results." neden olabilir

Deadlocking bir açıklama ve bir örnek de SQL Server için Windows NT "Programmer's Reference c" "Ek E en üst düzeye çıkarma tutarlılığı ve eşzamanlılık" içinde bir kilitlenme durumu algılamaya nasıl bulabilirsiniz.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 4.21a Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Workgroup
Anahtar Kelimeler: 
kbmt kbinfo kbprogramming KB118552 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:118552  (http://support.microsoft.com/kb/118552/en-us/ )