Symptomen
Ga ervan uit dat u samenvoegreplicatie gebruikt in Microsoft SQL Server 2012 of in Microsoft SQL Server 2014. Als onderdeel van het synchronisatieproces maakt samenvoegagent nieuwe generatie in een sessie. Als u om wat voor reden dan ook een deadlock of time-out selecteert, wordt de generatie-transactie voor de registratie van de deadlock geselecteerd en wordt de transactie teruggedraaid, er mogelijk een grote reeks blokkeringen voor MSinternal_makegeneration_inprog toepassingsvergrendeling in de komende generatie, en de eerder vermelde sessie wordt weergegeven als hoofd blok.
Oorzaak
De toepassingsvergrendeling die wordt gebruikt voor het beveiligen van een generatie proces, is een toepassingsvergrendeling op sessie niveau. Wanneer tijdens het maken van een deadlock een deadlock wordt gedetecteerd, wordt alleen de transactie teruggedraaid maar de sessie niet afgemeld. Als u een toepassingsvergrendeling op sessie niveau wilt vrijgeven, moet de sessie worden afgemeld. Vanwege het ontwerp van nieuwe logica (sessie wordt niet afgemeld tijdens het samenvoegen van een fout bij het samenvoegen van fouten), en de eerste generatie mislukt vanwege deadlock, wordt de sessie vergrendeling (MSinternal_makegeneration_inprog) niet vrijgegeven voor het ongedaan maken van een transactie. Hierdoor blokkeert u ketting verzoeken om te vergrendelen in de komende generatie processen. De hoofd blokkering wordt weergegeven als de eerste aanvraag voor het maken van de generatie, die mislukt vanwege deadlock. Vóór de hotfix wist SQL Server alleen de vergrendeling voor een geslaagde generatie proces. Met deze functie wordt een zwevende sessie toepassing vergrendeld voordat het afmelden van de sessie plaatsvindt.
Oplossing
Dit probleem is voor het eerst opgelost in de volgende cumulatieve update van SQL Server.
Cumulatieve update 5 voor SQL Server 2014 /en-us/help/3011055
Cumulatieve update 3 voor SQL Server 2012 SP2 /en-us/help/3002049
Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingsoplossingen die zijn opgenomen in de vorige cumulatieve update. Bekijk de nieuwste cumulatieve updates voor SQL Server:
Status
Microsoft heeft bevestigd dat dit probleem zich kan voordoen in de Microsoft-producten die worden vermeld in de sectie Van toepassing op.