Симптоми
Имайте предвид следния сценарий в Microsoft SQL Server Compact 3,5:
-
Имате две транзакции с сериализирана изолация.
-
И двете транзакции се опитват да изпълнят ГСД операция (заявка/ГСД) на една и съща таблица, която съдържа подсещане за заключване на TABLOCK, или намек за заключване на XLOCK.
В този случай ще срещнете безизходица.
Причина
Този проблем възниква, тъй като и двете транзакции изчакват една за XLOCK. Когато заявката бъде съставена, и двете транзакции получават споделената ключалка на таблицата и след това държат ключалката за сериализирана изолация. Когато и двете транзакции се опитат да изпълнят заявката в същата таблица, която съдържа подсещане за заключване на XLOCK, и двете транзакции изчакват един за друг за XLOCK. Следователно възниква безизходица.Забележка Този проблем възниква и когато и двете транзакции извършват операция за ГСД на една и съща таблица, която съдържа намек за заключване на TABLOCK.
Решение
SQL Server Compact 3,5 Service Pack 2
Корекцията за този проблем е издадена за първи път в сборна актуализация 2. За повече информация как да получите тази кумулативна актуализация на пакета за SQL Server 2008 R2, щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:
2289547 Кумулативна актуализация 2 за SQL Server Compact 3,5 Service Pack 2
Състоянието
Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са посочени в секцията "важи за".
Повече информация
За повече информация относно безизходицата посетете следния уеб сайт на Microsoft Developer Network (MSDN):
ЗастойЗа повече информация относно ГСД посетете следния уеб сайт на MSDN:
ГСДЗа повече информация за терминологията на софтуерната актуализация щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:
824684 Описание на стандартната терминология, която се използва за описание на актуализациите на софтуер на Microsoft