Symptom
Tänk på följande i Microsoft SQL Server Compact 3,5:
-
Du har två transaktioner med serialiserbar isolering.
-
Båda transaktionerna försöker utföra en DML-operation (Query/DML) på samma tabell som innehåller ett TABLOCK låsnings tips eller ett XLOCK låsnings tips.
I det här scenariot uppstår ett död läge.
Orsak
Det här problemet beror på att båda transaktionerna väntar på ett annat för XLOCK. När frågan kompileras får båda transaktionerna det delade låset i tabellen och håller sedan låset för serialiserbar isolering. När båda transaktionerna försöker utföra en körning, frågan på samma tabell som innehåller ett XLOCK låsnings tips, väntar båda transaktionerna på en annan för XLOCK. Därför uppstår ett död läge.Obs! Det här problemet uppstår också när båda transaktionerna utför en DML-operation på samma tabell som innehåller ett TABLOCK låsnings tips.
Lösning
SQL Server Compact 3,5 Service Pack 2
Korrigeringen för det här problemet släpptes först i kumulativ uppdatering 2. Om du vill veta mer om hur du hämtar det här kumulativa uppdaterings paketet för SQL Server 2008 R2 klickar du på följande artikel nummer och läser artikeln i Microsoft Knowledge Base:
2289547 Kumulativ uppdatering 2 för SQL Server Compact 3,5 Service Pack 2
Status
Microsoft har bekräftat att det här är ett problem i Microsoft-produkterna som nämns i "gäller".
Mer information
Mer information om deadlock finns på följande Microsoft Developer Network (MSDN)-webbplats:
LägstMer information om DML finns på följande MSDN-webbplats:
DMLMer information om program uppdaterings terminologi får du om du klickar på följande artikel nummer och läser artikeln i Microsoft Knowledge Base:
824684 Beskrivning av den standard terminologi som används för att beskriva Microsoft-programuppdateringar