症状
假设你使用的会话调用公共语言运行时(CLR)存储过程(一个 "调用会话")以访问 Microsoft SQL Server 中的数据,并且该过程依次将单独的连接("第二个会话")与同一服务器(而不是 上下文连接)建立。 然后,如果调用会话因超时或取消而终止,则第二个会话可能会变为孤立状态,并且将存在于系统中,直到使用 KILL 命令手动终止 。 如果该孤立会话持有任何锁,则其他会话可能会被阻止,等待解除锁定。
状态
Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。
解决方案
在 SQL Server 的以下累积更新中修复了此问题:
关于 SQL Server 的累积更新:
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新
注意 默认情况下,由于需要,该修补程序处于关闭状态 在 SQL Server 中保留 CLR 线程处理的旧行为。 仅当系统出现之前提到的症状时,才需要将其打开。 若要启用此修补程序,需要使用 数据库引擎服务启动选项将跟踪标记6559添加到服务器。 请记住,此跟踪标志只能与 SQL Server 启动选项一起使用。 无法使用DBCC TRACEON命令进行设置。
参考
了解 Microsoft 用于描述软件更新的术语。