Ознаки
Розглянемо наведений нижче сценарій в Microsoft SQL Server Compact 3,5:
-
У вас є дві операції з серійним ізоляцією.
-
Обидві транзакції намагатимуться виконати операцію DML (запит/DML) в тій самій таблиці, яка містить підказку про Фіксатори або Фіксатори XLOCK.
У цьому сценарії ви зустрінете глухий кут.
Причина
Ця проблема виникає через те, що обидві транзакції очікують один одного для XLOCK. Коли запит буде скомпільовано, обидві транзакції отримають спільний замок в таблиці, а потім тримає блокування для серіалізацію. Коли обидві транзакції намагатимуться виконати виконання, у запиті в тій самій таблиці, яка містить підказку про блокування XLOCK, після цього обидві транзакції очікують один одного для XLOCK. Таким чином, відбувається глухий кут.Примітка.Ця проблема також виникає, коли обидві транзакції виконують операцію DML в тій самій таблиці, яка містить підказку блокування.
Спосіб вирішення
SQL Server Compact 3,5 Service Pack 2
Виправлення для цієї проблеми уперше випущено в сукупному оновленні 2. Щоб отримати докладні відомості про отримання цього сукупного оновлення пакета для SQL Server 2008 R2, клацніть цей номер статті, щоб переглянути статтю в базі знань Microsoft Knowledge Base:
2289547 Сукупне оновлення 2 для SQL Server Compact 3,5 Service Pack 2
Стан
Корпорація Майкрософт підтвердила, що це проблема в продуктах Microsoft, перелічених у розділі "застосовується до".
Додаткові відомості
Щоб отримати докладні відомості про глухий кут, перейдіть на веб-сайт MSDN для розробників (Microsoft):
Глухий кутЩоб отримати докладніші відомості про DML, перейдіть на такий веб-сайт MSDN:
DMLЩоб отримати докладніші відомості про термінологію оновлення програмного забезпечення, клацніть номер статті в базі знань Microsoft Knowledge Base:
824684 Опис стандартної термінології, яка використовується для опису оновлень програмного забезпечення Microsoft