Požymiai
Apsvarstykite šį "„Microsoft SQL Server Compact“ 3.5" scenarijų:
- Turite dvi nuosekliai išdėstomo atskyrimo operacijas.
- Abi operacijos bando atlikti DML operaciją (užklausą / DML) toje pačioje lentelėje, kurioje yra TABLOCK arba XLOCK užrakinimo užuomina.
Tokiu atveju atsidursite aklavietėje.
Priežastis
Ši problema kyla, nes abi operacijos viena kitos laukia XLOCK. Kai užklausa sukompiliuojama, abi operacijos gauna bendrą užraktą lentelėje ir tada laiko užraktą, kad būtų galima atskirti nuosekliai. Kai abi operacijos bando vykdyti, užklausą toje pačioje lentelėje, kurioje yra XLOCK užrakinimo užuomina, abi operacijos laukia viena kitos XLOCK. Todėl įvyksta aklavietė.
Pastaba Ši problema taip pat kyla, kai abi operacijos atlieka DML operaciją toje pačioje lentelėje, kurioje yra TABLOCK fiksavimo užuomina.
Sprendimas
„SQL Server Compact“ 3.5 Service Pack 2
Šios problemos pataisa pirmą kartą buvo išleista 2 kaupiamajame naujinime. Norėdami gauti daugiau informacijos apie tai, kaip gauti šį kaupiamųjų naujinimų paketą, skirtą „SQL Server“ R2, spustelėkite toliau nurodytą straipsnio numerį ir peržiūrėkite "Microsoft" žinių bazės straipsnį:
2289547 2 kaupiamasis naujinimas, skirtas „SQL Server Compact“ 3.5" 2 pakeitimų paketui
Būsena
„„Microsoft““ patvirtino, kad tai yra „„Microsoft““ produktų, išvardytų dalyje „Taikoma“, problema.
Daugiau informacijos
Norėdami gauti daugiau informacijos apie "Deadlock", apsilankykite šioje "Microsoft" kūrėjų tinklo (MSDN) svetainėje:
aklavietė Norėdami gauti daugiau informacijos apie DML, apsilankykite šioje MSDN svetainėje:
DML Norėdami gauti daugiau informacijos apie programinės įrangos naujinimo terminiją, spustelėkite toliau nurodytą straipsnio numerį ir peržiūrėkite "Microsoft" žinių bazės straipsnį:
824684 Standartinių terminų, naudojamų "„Microsoft“" programinės įrangos naujinimams apibūdinti, aprašas