Симптоми
Да предположим, че използвате репликация чрез обединяване в Microsoft SQL Server 2012 или Microsoft SQL Server 2014. Като част от процеса на синхронизация, агентът за обединяване създава ново поколение в сесия. Ако по някаква причина, като блокиране или време на изчакване, транзакцията, създаваща генериране, бъде избрана като жертва на блокиране и транзакцията бъде анулирана, може да има голяма верига от блокиране за заключването на приложението MSinternal_makegeneration_inprog предстоящо поколение и споменатата по-рано сесия се показва като блокиращ главата.
Причина
Заключването на приложението, което се използва за защита на процеса на създаване на генерация, е заключване на приложението на ниво сесия. Когато бъде открито блокиране по време на процеса на създаване на генериране, само транзакцията се анулира, но сесията не се изключва. За да освободите заключване на приложение на ниво сесия, сесията трябва да излезе. Следователно, поради дизайна на логиката за повторен опит (сесията няма да бъде отписана по време на генерирането, което прави неуспех при репликация на обединяване), ако първото поколение, правещо блокиране, блокирането на сесията (MSinternal_makegeneration_inprog), което получи, няма да бъде освободено по време на връщане към стабилно състояние на транзакцията. Това води до блокиране на веригата от заявки за заключване в процеса на създаване на предстоящо поколение. Блокирането на главата се показва като първо поколение заявка за правене, която е неуспешна с блокиране.
Преди горещата корекция SQL Server изчиства заключването само за успешен процес на създаване на генерации. То оставя заключване на изолирано приложение за сесия преди излизане от сесията, ако се получи блокиране.
Решение
Този проблем е отстранен за първи път в следващата кумулативна актуализация на SQL Server.
Сборна актуализация 5 за SQL Server 2014 г. /en-us/help/3011055
Сборна актуализация 3 за SQL Server 2012 SP2 /en-us/help/3002049
За кумулативните актуализации за SQL Server
Всяка нова кумулативна актуализация за SQL Server съдържа всички актуални поправки и корекции на защитата, които са били включени в предишната кумулативна актуализация. Прегледайте последните кумулативни актуализации за SQL Server:
- Последна сборна актуализация за SQL Server 2014
- Последна кумулативна актуализация за SQL Server 2012 SP2
Състояние
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.