症状
客户端计算机不回隶属于 Microsoft Windows 软件更新服务 (WSUS) 服务器。此外,可能会出现以下症状︰
-
在客户端计算机上的 Windowsupdate.log 日志文件中记录以下错误消息︰
警告︰ 无法向 hr 服务器上载事件 = 80244008
-
Microsoft SQL Server 超时错误消息显示在 WSUS 服务器上的管理控制台。
-
位于 %programfiles%\Microsoft 的 Windows 更新 Services\LogFiles 文件夹中的 SoftwareDistribution.log 文件包含类似于以下的消息︰
<DATE>
<TIME>
UTC 错误 w3wp.130DBConnection.LogSqlExceptionDBLAYER︰ 错误 [0]: 源.Net SqlClient 数据提供程序、 服务器 OPC AD WSUS1N\WSUS、 数-2,第 10 类状态 0,过程 ConnectionRead (WrapperRead())。,
LineNumber 0︰ 超时已过期。 在操作完成之前已超时或服务器没有响应。
原因
如果 tbEventInstance 表中报告事件数超过 100 万行,将出现此问题。
WSUS 服务器正在使用推荐的硬件可以使用缺省检测周期 22 小时支持 15000 个客户端的最大数目。添加到 tbEventInstance 表中报告的事件的数量取决于客户机的数量和频率设置为每个检测周期。客户端尝试发送报告时,将启动自动删除的 tbEventInstance 表中的行。TbEventInstance 表中报告的事件都超过 100 万行,才会启动自动删除过程。
自动删除过程很慢,并阻止从代理回叫 WSUS 服务器的客户端计算机。默认情况下,WSUS 配置为删除在工作站上的时间超过 15 天,并早于 90 天,在服务器上的事件。WSUS 中删除旧事件的 1000 个事件速率每 12 个小时。
有关如何确定 tbEventInstance 表是否有超过 1 百万行的信息,请参阅"更多信息"部分。
解决方案
修补程序信息
可以从 Microsoft 获得受支持的修复程序。然而,此修补程序仅用于解决本文中描述的问题。仅对出现这一特定问题的系统应用此修补程序。
如果此修复程序可供下载,则在此知识库文章的顶部会出现“修补程序下载可用”部分。如果未显示此部分,将申请提交到 Microsoft 客户服务和支持,以获取此修复程序。
注意:如果出现其他问题或需要任何故障诊断时,您可能需要创建单独的服务请求。对于不符合此特定的修补程序的其他支持问题和事项将照常收取费用。有关 Microsoft 客户服务和支持电话号码或创建单独的服务请求的完整列表,请访问下面的 Microsoft 网站︰
http://support.microsoft.com/contactus/?ws=support注意:"提供修补程序下载"窗体显示获取此修复程序的语言。如果看不到您的语言,则修补程序没有那种语言的版本。
系统必备组件
不需要任何先决条件。
重启要求
应用此修补程序后,不需要重新启动计算机。
修补程序替换信息
此修补程序不替换任何其他修补程序。
文件信息
此修复程序的英文版具有的文件属性 (或更新的文件属性)在下表中列出。日期和为这些文件的时间以协调世界时 (UTC) 列出。当您查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用控制面板中的日期和时间项中的时区选项卡。
文件名称 |
文件版本 |
文件大小 |
日期 |
时间 |
平台 |
---|---|---|---|---|---|
Eventinstancesfix.dll |
不适用 |
41,272 |
07-Nov-2005 |
11:36 |
x86 |
Eventinstancesfix.sql |
不适用 |
14,442 |
01-Nov-2005 |
10:42 |
不适用 |
Runeventinstancesfix.vbs |
不适用 |
1,433 |
08-Nov-2005 |
12:16 |
不适用 |
解决方法
若要变通解决此问题,请更改一个值在允许的范围内,对在检测周期。通过使用组策略,您可以处理从 1 小时到 22 小时每个检测周期之间的时间。例如,如果更改检测周期频率从默认 22 小时到 11 个小时,WSUS 服务器可以支持的客户机的数量将降至 7500 客户端。
如果客户端计算机不报告返回到 WSUS 服务器更改检测周期频率后,您必须从 tbEventInstance 表中删除所有当前的事件。若要执行此操作,请在 SQL 查询分析器中运行以下命令︰
截断表 dbo.tbEventInstance此外,可以停止自动删除过程,然后增加删除过程的频率。 增加删除过程的频率后,WSUS 将删除行中较小的区块,但维护 tbEventInstance 表的大小。
若要停止自动删除进程并删除过程的频率设置为 1 小时,请在 SQL 查询分析器中运行以下命令︰
更新 dbo.tbConfigurationB 集 AutoPurgeDetectionPeriod = 1此命令将运行该删除过程每隔一小时。运行此命令后,WSUS 中删除 24000 事件每天 1000 个事件,每小时的速度。这是删除过程可以设置的最高频率。
若要计算正确的自动删除频率和正确检测周期频率,您必须知道 WSUS 客户机的数量。
使用下面的公式来计算删除过程的最小频率和检测周期频率︰
最小的删除过程频率: (24/DF) x CL
检测循环频率: (CL/PF) x 24注意:DF 是检测周期频率、 CL 将 WSUS 客户的数目和 PF 是最小的清除频率。
例如,如果有 4000 个 WSUS 客户机,并将检测周期频率设置为每日 8 周期,可以到 tbEventInstance 表中记录约 32000 事件。可通过每日的删除过程的事件的最大数目是 24000 事件时删除频率设置为 1 小时。因此,可以减少检测周期频率,以使客户端生成的事件数少于 24000。
状态
Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。
详细信息
如何确定 tbEventInstance 表是否有超过 1 百万行
-
启动 SQL 查询分析器中,并将连接到本地服务器。
-
在数据库列表中,单击SUSDB。
-
在查询窗口中粘贴下面的 SQL 查询︰
select count(*) from tbEventInstance
-
单击执行查询以运行查询。
如果您运行的 Microsoft SQL Server 桌面引擎 (Windows) (WMSDE),您可以使用osql命令以验证tbEventInstance表是否有超过 1 百万行。为此,在命令提示符处,键入以下命令,然后按 enter 键︰
"%programfiles%\Update Services\tools\osql\osql.exe" -S %COMPUTERNAME%\WSUS -E -dSUSDB -Q"SELECT COUNT(*) FROM dbo.tbEventInstance"
有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
用于描述 Microsoft 软件更新的标准术语的824684说明