KB983516-FIX: er treedt een deadlock op wanneer twee transacties een DML-bewerking uitvoeren voor een tabel met een TABLOCK-vergrendelings hint of een XLOCK-vergrendelings Hint

Van toepassing: Microsoft SQL Server Compact 3.5SQL Server Compact 3.5 Service Pack 2

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: Ga naar de volgende MSDN-website voor meer informatie over DML:Klik 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