KB4517771 CORRECCIÓN: Las sesiones CLR huérfanas provocan bloqueos en SQL Server

Se aplica a
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

Síntomas

Supongamos que usa una sesión que llama a un procedimiento almacenado de Common Language Runtime (CLR) (una "sesión de llamada") para obtener acceso a datos de Microsoft SQL Server, y ese procedimiento establece a su vez una conexión independiente (una "segunda sesión") al mismo servidor, en lugar de una conexión de contexto. Entonces, si la sesión de llamada finaliza debido a un tiempo de espera o una cancelación, la segunda sesión puede quedar huérfana y existirá en el sistema hasta que se finalice manualmente mediante el comando KILL . Si esa sesión huérfana contiene algún bloqueo, es posible que otras sesiones se bloqueen esperando a que se liberen los bloqueos.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Resolución

Este problema se ha corregido en las siguientes actualizaciones acumulativas para SQL Server:

Acerca de las actualizaciones acumulativas para SQL Server:

Cada nueva actualización acumulativa para SQL Server contiene todas las revisiones y correcciones de seguridad que se incluyeron con la actualización acumulativa anterior. Consulte las actualizaciones acumulativas más recientes para SQL Server

Nota De forma predeterminada, la corrección está desactivada debido a la necesidad de conservar el comportamiento heredado de los subprocesos CLR en SQL Server. Solo necesita activarlo si su sistema muestra los síntomas mencionados anteriormente. Para habilitar la corrección, debe agregar la marca de seguimiento 6559 al servidor mediante las opciones de inicio del servicio del motor de base de datos. Recuerde que esta marca de seguimiento solo se puede usar junto con las opciones de inicio de SQL Server. No se puede establecer mediante el comando DBCC TRACEON .

Referencias

Obtenga información sobre la terminología que usa Microsoft para describir las actualizaciones de software.