KB3011807 – OPRAVA: Pri použití replikácie zlúčenia v SQL Server 2012 alebo SQL Server 2014 dochádza k veľkej reťazci blokovania

Vzťahuje sa na
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard

Príznaky

Predpokladajme, že používate replikáciu zlúčenia v systéme Microsoft SQL Server 2012 alebo Microsoft SQL Server 2014. Ako súčasť procesu synchronizácie vytvára agent zlúčenia novú generáciu v relácii. Ak je z nejakého dôvodu, napríklad v prípade zablokovania alebo časového limitu, transakcia uskutočňujúca generáciu vybraná ako obeť zablokovania a transakcia sa vráti späť, v nadchádzajúcej generácii môže dôjsť k MSinternal_makegeneration_inprog veľkému reťazcu blokovania uzamknutia aplikácie a vyššie uvedená relácia sa zobrazí ako blokovanie hlavy.

Príčina

Zámok aplikácie, ktorý sa používa na zabezpečenie procesu vytvárania generácie, je zámok aplikácie na úrovni relácie. Keď sa počas procesu vytvárania generácie zistí zablokovanie, vráti sa späť iba transakcia, ale relácia sa neodhlási. Ak chcete uvoľniť uzamknutie aplikácie na úrovni relácie, relácia sa musí odhlásiť. Z tohto dôvodu sa z dôvodu návrhu logiky opakovania (relácia nebude počas generovania zlyhania pri zlúčení replikácie odhlásená) v prípade, že vytváranie prvej generácie zlyhá so zablokovaním, získaný zámok relácie (MSinternal_makegeneration_inprog) sa počas vrátenia transakcie neuvoľní. Spôsobí to blokovanie reťaze žiadostí o uzamknutie v procese vytvárania nadchádzajúcej generácie. Hlava blokovanie sa zobrazuje ako prvá generácia zadávajúca požiadavku, ktorá zlyhá pri zablokovaní.
Pred rýchlou opravou SQL Server vymaže zámok iba pre úspešný proces vytvárania generácie. V prípade zablokovania osamotenej relácie zostane osamotená relácia uzamknutá pred odhlásením relácie.

Riešenie

Tento problém bol prvýkrát opravený v nasledujúcej kumulatívnej aktualizácii SQL Server.

Kumulatívna aktualizácia 5 pre SQL Server 2014 /en-us/help/3011055

Kumulatívna aktualizácia 3 pre SQL Server 2012 SP2 /sk-SK/help/3002049

Informácie o kumulatívnych aktualizáciách pre SQL Server

Každá nová kumulatívna aktualizácia pre SQL Server obsahuje všetky rýchle opravy a opravy zabezpečenia, ktoré boli zahrnuté v predchádzajúcej kumulatívnej aktualizácii. Pozrite si najnovšie kumulatívne aktualizácie pre SQL Server:

      

Stav

Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v časti Vzťahuje sa na.