症状
请考虑以下情况:
-
客户端应用程序连接到 Microsoft SQL Server 2008 或 Microsoft SQL Server 2008 R2 实例。
-
当 SQL Server 在 SQL Server 2008 或 SQL Server 2008 R2 与客户端应用程序之间重置连接时,将发生查询超时。 或者,客户端应用程序通过将查询取消到 SQL Server 实例来显式发送注意信号。
在此方案中,SQL Server 执行连接的强制关闭,你可能会收到以下错误消息之一:
-
错误消息 1
当前命令出现严重错误。 应丢弃结果(如果有)。
-
错误消息 2
从服务器接收结果时发生传输级错误。 (提供程序: TCP 提供程序: TCP 提供程序,错误: 0-远程主机强制关闭了一个现有连接。)
此外,SQL Server 错误日志文件中记录了类似于以下内容的错误消息:
<日期><时间> <spid> 错误:18056,严重性:20,状态: 29 <><> <> 的 spid <客户无法重复使用> SPID 的会话,该会话已针对连接池重置。 失败 ID 是29。 此错误可能是由于以前的操作失败导致的。 检查错误日志中是否出现此错误消息之前的失败操作。
解决方案
累积更新信息
SQL Server 2008 R2 Service Pack 2
此问题的修补程序首次在 SQL Server 2008 R2 Service Pack 2 的累积更新1中发布。有关如何获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2720425 SQL Server 2008 R2 Service Pack 2 的累积更新包1注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 R2 修补程序版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2730301 发布 SQL Server 2008 R2 Service Pack 2 后发布的 SQL Server 2008 R2 版本
SQL Server 2008 Service Pack 3
此问题的修补程序首次发布于 SQL Server 2008 的累积更新6(Service Pack 3)。有关此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2715953 SQL Server 2008 的累积更新包 6 Service Pack 3注意 由于这些版本是累积的,因此每个新的修复版本都包含以前的 SQL Server 2008 修复版本附带的所有修补程序和所有安全修补程序。 Microsoft 建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2629969 发布 SQL server 2008 Service Pack 3 后发布的 SQL Server 2008 版本 为特定 SQL Server service pack 创建 Microsoft SQL Server 2008 修补程序。 必须将 SQL Server 2008 Service Pack 3 修补程序应用到 SQL Server 2008 Service Pack 3 的安装。 默认情况下,SQL Server service pack 中提供的任何修补程序都包含在下一个 SQL Server service pack 中。
SQL Server 2008 R2
此问题的修补程序首次在累积更新14中发布。有关如何为 SQL Server 2008 R2 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2703280 SQL Server 2008 R2 的累积更新程序包14 注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 R2 修补程序版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
981356 发布 SQL Server 2008 R2 后发布的 SQL Server 2008 R2 版本
SQL Server 2008 Service Pack 1
此问题的修补程序首次发布于 SQL Server 2008 Service Pack 1 的累积更新14。有关此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2527187 SQL Server 2008 的累积更新程序包 14 Service Pack 1注意 由于这些版本是累积的,因此每个新的修复版本都包含以前的 SQL Server 2008 修复版本附带的所有修补程序和所有安全修补程序。 Microsoft 建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
956909 在 SQL Server 2008 发布后发布的 SQL Server 2008 版本 为特定 SQL Server service pack 创建 Microsoft SQL Server 2008 修补程序。 必须将 SQL Server 2008 Service Pack 1 修补程序应用到 SQL Server 2008 Service Pack 1 的安装。 默认情况下,SQL Server service pack 中提供的任何修补程序都包含在下一个 SQL Server service pack 中。
SQL Server 2008 Service Pack 2
此问题的修补程序首次发布于 SQL Server 2008 Service Pack 2 的累积更新10。有关此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2696625 SQL Server 2008 的累积更新包10服务包2注意 由于这些版本是累积的,因此每个新的修复版本都包含以前的 SQL Server 2008 修复版本附带的所有修补程序和所有安全修补程序。 Microsoft 建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2402659 发布 SQL Server 2008 Service Pack 2 后发布的 SQL Server 2008 版本 为特定 SQL Server service pack 创建 Microsoft SQL Server 2008 修补程序。 必须将 SQL Server 2008 Service Pack 2 修补程序应用到 SQL Server 2008 Service Pack 2 的安装。 默认情况下,SQL Server service pack 中提供的任何修补程序都包含在下一个 SQL Server service pack 中。
SQL Server 2008 R2 Service Pack 1
此问题的修补程序首次在 SQL Server 2008 R2 Service Pack 1 的累积更新6中发布。有关如何获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2679367 SQL Server 2008 R2 Service Pack 1 的累积更新包6注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 R2 修补程序版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2567616 在发布 SQL Server 2008 R2 Service Pack 1 之后发布的 SQL Server 2008 R2 版本
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
更多信息
有关此问题的详细信息,包括疑难解答步骤,请参阅来自 SQL Server 升级服务团队的以下博客文章: