Symptomen
Houd rekening met het volgende scenario in Microsoft SQL Server Compact 3,5:
-
U hebt twee transacties met serialiseerbare isolatie.
-
Beide transacties proberen een DML-bewerking (query/DML) uit te voeren in dezelfde tabel die een TABLOCK-vergrendelings hint of een XLOCK-vergrendelings Hint bevat.
In dit scenario is er een deadlock.
Oorzaak
Dit probleem doet zich voor omdat beide transacties op een andere manier wachten voor XLOCK. Wanneer de query wordt gecompileerd, krijgen beide transacties de gedeelde vergrendeling voor de tabel en wordt de vergrendeling voor de serialiseerbare isolatie vervolgens bewaard. Wanneer beide transacties proberen een uitvoering uit te voeren, wordt de query in dezelfde tabel met een ontgrendelings Hint voor XLOCK en kunnen beide transacties op een andere manier voor XLOCK worden uitgevoerd. Daarom vindt een deadlock plaats.Opmerking Dit probleem doet zich ook voor wanneer beide transacties een DML-bewerking uitvoeren op dezelfde tabel die een TABLOCK-vergrendelings Hint bevat.
Oplossing
SQL Server Compact 3,5 Service Pack 2
De oplossing voor dit probleem werd eerst uitgebracht in cumulatieve update 2. Voor meer informatie over het verkrijgen van dit cumulatieve updatepakket voor SQL Server 2008 R2 klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:
2289547 Cumulatieve update 2 voor SQL Server Compact 3,5 Service Pack 2
Status
Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.
Meer informatie
Ga naar de volgende MSDN-website (Microsoft Developer Network) voor meer informatie over deadlock:
DeadlockGa naar de volgende MSDN-website voor meer informatie over DML:
DMLKlik voor meer informatie over de terminologie van software-updates op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base weer te geven:
824684 Beschrijving van de standaardterminologie die wordt gebruikt voor het beschrijven van Microsoft-software-updates