對 Windows 軟體更新服務 」 (WSUS) 伺服器的用戶端電腦並回報告


狀況


用戶端電腦不會報告回至 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 資料表中報告的事件數目超過 1 百萬個資料列,就會發生這個問題。

正在使用建議的硬體的 WSUS 伺服器可以使用預設偵測循環的 22 小時來支援 15000 個用戶端的最大數目。新增至 tbEventInstance 表格中報告的事件數目要視用戶端數目和設定為每個偵測循環的頻率而定。當用戶端嘗試傳送報告時,就會開始自動刪除的 tbEventInstance 資料表的資料列。自動刪除程序是在 tbEventInstance 表格中報告的事件超過 1 百萬個資料列時,才啟動。

自動刪除程序很慢,並且封鎖從回報至 WSUS 伺服器的用戶端電腦。根據預設,WSUS 會設定為刪除,是在工作站上寫 15 天前發生,而且在伺服器上的 90 天的事件。WSUS 會刪除舊的事件,以 1000 的事件的速率每 12 小時。

如需有關如何判斷是否為 tbEventInstance 資料表超過 1 百萬個資料列的資訊,請參閱 < 其他資訊=""> 一節。

解決方案


Hotfix 資訊

支援的 hotfix 可從 Microsoft 取得。不過,此 Hotfix 僅用於修正本文中所述的問題。此 Hotfix 只適用於發生此特定問題的系統上。

如果 hotfix 可供下載,在此知識庫文件頂端將出現「可用的 Hotfix」區段。如果這個區段不會出現,將要求提交給 Microsoft 客戶服務及支援取得 Hotfix。

注意如果發生其他問題,或如果需要進行疑難排解,您可能必須建立個別的服務要求。收取支援費用會套用到其他支援問題和此特定 hotfix 無法解決的問題。如 Microsoft 客戶服務及支援的電話號碼或建立個別的服務要求的完整清單,請造訪下列 Microsoft 網站︰注意「 下載 Hotfix 」 表單會顯示 hotfix 可用的語言。如果看不到您的語言,是因為未提供該語言的 Hotfix 。

先決條件

沒有需要的先決條件。

重新啟動需求

您不必套用此 hotfix 之後,重新啟動電腦。

Hotfix 取代資訊

此 hotfix 不會取代任何其他 hotfix。

檔案資訊

此 hotfix 的英文版具有下列表格中所列檔案屬性 (或較新的檔案屬性)。這些檔案的日期和時間會以國際標準時間 (UTC) 格式列出。當您檢視檔案資訊時,會將它轉換為本地時間。若要查看 UTC 與當地時間的時差,請在 [控制台] 中的日期和時間項目使用 [時區] 索引標籤。
檔案名稱檔案版本檔案大小日期時間平台
Eventinstancesfix.dll不適用41,27207-Nov-200511:36x86
Eventinstancesfix.sql不適用14,44201-Nov-200510:42不適用
Runeventinstancesfix.vbs不適用1,43308-Nov-200512:16不適用

因應措施


若要解決這個問題,請在允許的範圍內的值變更偵測循環。藉由使用 [群組原則,您可以管理每一個偵測週期循環從 1 小時 22 小時之間的時間。例如,如果您變更偵測循環頻率與預設 22 小時到 11 小時的時間,WSUS 伺服器可支援的用戶端數目的動作就會降低到 7,500 的用戶端。

如果用戶端電腦不會報告回至 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
注意自由度是偵測循環頻率、 CL WSUS 的用戶端數目現況 PF 最小的清除頻率。

比方說,如果有 4000 WSUS 用戶端,而且您將偵測循環頻率設定為每天 8 循環,大約 32000 事件可以記錄至 tbEventInstance 資料表。刪除程序,每天可以移除的事件的最大數目是 24000 的事件,當您將刪除頻率設定為 1 小時。因此,您也可以使由用戶端所產生的事件數目小於 24000 減少偵測循環的頻率。

狀態


Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。

更多的資訊


如何判斷是否為 tbEventInstance 資料表超過 1 百萬個資料列

  1. 啟動 SQL 查詢分析器] 中,,然後連線到本機伺服器。
  2. 在 [資料庫] 清單中,按一下 [ SUSDB]。
  3. 在 [查詢] 視窗中,貼上下列的 SQL 查詢︰
    select count(*) from tbEventInstance
  4. 按一下 [執行查詢以執行查詢。
如果您正在執行 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描述