KB4517771 - FIX: zwevende CLR-sessies veroorzaken blokkering in SQL Server

Van toepassing op
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Standard on Windows SQL Server 2019 on Windows

Symptomen

Stel dat u een sessie gebruikt die een in CLR (Common Language Runtime) opgeslagen procedure aanroept (een 'oproepsessie') om toegang te krijgen tot gegevens in Microsoft SQL Server, en dat die procedure weer een afzonderlijke verbinding (een 'tweede sessie') met dezelfde server tot stand brengt in plaats van een contextverbinding. Als vervolgens de oproepende sessie wordt beƫindigd vanwege een time-out of annulering, kan de tweede sessie zwevend worden en in het systeem aanwezig blijven totdat deze handmatig wordt beƫindigd met de opdracht KILL . Als die zwevende sessie vergrendelingen bevat, kunnen andere sessies worden geblokkeerd totdat de vergrendelingen worden vrijgegeven.

Status

Microsoft heeft bevestigd dat dit een probleem is bij de Microsoft-producten die worden vermeld in het gedeelte 'Van toepassing op'.

Oplossing

Dit probleem is opgelost in de volgende cumulatieve updates voor SQL Server:

Over cumulatieve updates voor SQL Server:

Elke nieuwe cumulatieve update voor SQL Server bevat alle hotfixes en alle beveiligingspatches die deel uitmaakten van de vorige cumulatieve update. Bekijk de meest recente cumulatieve updates voor SQL Server

Notitie Standaard is de fix uitgeschakeld omdat het oude gedrag van CLR-threading in SQL Server behouden moet blijven. U hoeft het alleen in te schakelen als uw systeem de eerder genoemde symptomen vertoont. Als u de oplossing wilt inschakelen, moet u de traceringsvlag 6559 aan de server toevoegen met behulp van de Database Engine Service Startup Options. Deze traceringsvlag kan alleen samen met SQL Server opstartopties worden gebruikt. Dit kan niet worden ingesteld met de opdracht DBCC TRACEON .

Meer informatie

Meer informatie over de terminologie die Microsoft gebruikt om software-updates te beschrijven.