クライアント コンピューターが Windows Software Update Services (WSUS) サーバーに報告しない

現象

クライアント コンピューターは、Microsoft Windows Software Update Services (WSUS) サーバーに報告しません。 さらに、次の現象が発生することがあります。

  • クライアント コンピューターのWindowsupdate.log ログ ファイルに次のエラー メッセージが記録されます。

    注

    警告: hr = 80244008 のサーバーにイベントをアップロードできませんでした

  • Microsoft SQL Server タイムアウト エラー メッセージは、WSUS サーバーの管理コンソールに表示されます。

  • %programfiles%\Microsoft Windows Update Services\LogFiles フォルダーにある SoftwareDistribution.log ファイルには、次のようなメッセージが含まれています。

    注

    <日付>
    <TIME>
     UTC Error w3wp.130DBConnection.LogSqlExceptionDBLAYER: Errors[0]: Source .Net SqlClient Data Provider, Server OPC-AD-WSUS1N\WSUS, Number -2, Class 10, State 0, Procedure ConnectionRead (WrapperRead()).,
     LineNumber 0: タイムアウトが経過しました。 処理が完了する前にタイムアウトの期間が経過したか、サーバーが応答していません。

原因

この問題は、tbEventInstance テーブル内のレポート イベントの数が 100 万行を超える場合に発生します。

推奨ハードウェアを使用する WSUS サーバーは、既定の検出サイクル 22 時間を使用して、最大数 15,000 のクライアントをサポートできます。 tbEventInstance テーブルに追加されるレポート イベントの数は、クライアントの数と、検出サイクルごとに設定されている頻度によって異なります。 クライアントがレポートを送信しようとすると、tbEventInstance テーブルからの行の自動削除が開始されます。 自動削除プロセスは、tbEventInstance テーブル内のレポート イベントが 100 万行を超える場合にのみ開始されます。

自動削除プロセスは非常に遅く、クライアント コンピューターが WSUS サーバーに報告するのをブロックします。 既定では、WSUS はワークステーションで 15 日より前のイベントと、サーバーで 90 日より前のイベントを削除するように構成されています。 WSUS は 12 時間ごとに 1,000 個のイベントの割合で古いイベントを削除します。

tbEventInstance テーブルが 100 万行を超えたかどうかを確認する方法については、「詳細」を参照してください。

解決策

修正プログラムの情報

マイクロソフトでは、この問題を修正する修正プログラムを提供しています。 ただし、この修正プログラムは、ここで説明する問題のみを修正することを目的としたものです。 この修正プログラムは、ここで説明する問題が発生しているシステムにのみ適用してください。

修正プログラムをダウンロードできる場合は、このサポート技術情報の資料の上部に「修正プログラムのダウンロード」セクションがあります。 このセクションが表示されていない場合は、Microsoft カスタマー サービス & サポート にリクエストを送信し、修正プログラムを入手してください。

注: 別の問題が発生した場合、またはトラブルシューティングが必要な場合には、別のサービス リクエストを作成することが必要になる場合があります。 特定の修正プログラムの対象とならない追加の質問および問題については、通常のサポート料金が適用されます。 Microsoft カスタマー サービス & サポート の電話番号一覧または別のサービス リクエストの作成については、次のマイクロソフト Web サイトを参照してください。

http://support.microsoft.com/contactus/?ws=support 注: [修正プログラムのダウンロードが利用可能] フォームには、修正プログラムを使用できる言語が表示されます。 使用している言語が表示されない場合は、その言語の修正プログラムが存在しないことになります。

前提条件

前提条件は必要ありません。

再起動の必要性

この修正プログラムの適用後にコンピューターを再起動する必要はありません。

修正プログラムの置き換えに関する情報

この修正プログラムを適用しても、他の修正プログラムは置き換えられません。

ファイル情報

修正プログラム (英語版) のファイル属性は次表のとおりです。ただし、これより新しい修正プログラムがリリースされている可能性もあります。 これらのファイルの日付と時刻は世界協定時 (UTC) で記載されています。 ファイル情報に表示される時刻は、ローカル時刻に変換されています。 UTC とローカル時刻との時差を確認するには、コントロール パネルの [日付と時刻] の [タイム ゾーン] タブを使用してください。

ファイル名 ファイルのバージョン ファイル サイズ 日付 時刻 プラットフォーム
Eventinstancesfix.dll 該当しない 41,272 2005 年 11 月 7 日 1,136 x86
Eventinstancesfix.sql 該当しない 14,442 2005 年 11 月 1 日 1,042 該当しない
Runeventinstancesfix.vbs 該当しない 1,433 2005 年 11 月 8 日 12:16 該当しない

回避策

この問題を回避するには、検出サイクルを許可範囲内の値に変更します。 グループ ポリシーを使用すると、各検出サイクル間の時間を 1 時間から 22 時間にまで操作できます。 たとえば、検出サイクルの頻度を既定の 22 時間から 11 時間に変更すると、WSUS サーバーがサポートできるクライアントの数は 7,500 クライアントに減少します。

検出サイクルの頻度を変更した後にクライアント コンピューターが WSUS サーバーに報告しない場合は、現在のすべてのイベントを tbEventInstance テーブルから削除する必要があります。 これを行うには、SQL クエリ アナライザーで次のコマンドを実行します。

切り捨てテーブル dbo.tbEventInstance また、自動削除処理を停止し、削除処理の頻度を増やすこともできます。 削除処理の頻度を上げると、WSUS は行をより小さなチャンクで削除しますが、tbEventInstance テーブルのサイズは維持されます。

自動削除処理を停止し、削除処理の頻度を 1 時間に設定するには、SQL クエリ アナライザで次のコマンドを実行します。

更新 dbo.tbConfigurationB SET AutoPurgeDetectionPeriod = 1 このコマンドは、1 時間ごとに削除プロセスを実行します。 このコマンドを実行すると、WSUS は 1 時間あたり 1,000 件のイベントの割合で、1 日あたり 24,000 件のイベントを削除します。 これは、削除プロセスで設定できる最も高い頻度です。

 正しい自動削除の頻度と正しい検出サイクルの頻度を計算するには、WSUS クライアントの数を知っている必要があります。

次の式を使用して、削除プロセスの最小頻度と検出サイクルの頻度を計算します。

最小削除処理回数:(24/DF)×CL

検出サイクル周波数: (CL/PF) x 24注: DF は検出サイクル周波数、CL は WSUS クライアントの数、PF は最小パージ周波数です。

たとえば、4,000 の WSUS クライアントがあり、検出サイクルの頻度を 1 日あたり 8 サイクルに設定した場合、約 32,000 個のイベントを tbEventInstance テーブルに記録できます。 削除プロセスによって 1 日あたりに削除できるイベントの最大数は、削除頻度を 1 時間に設定した場合、24,000 イベントです。 したがって、検出サイクルの頻度を減らして、クライアントによって生成されるイベントの数を 24,000 未満にすることができます。

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

追加情報

tbEventInstance テーブルが 100 万行を超えているかどうかを確認する方法

  1. SQL クエリ アナライザを起動し、ローカル サーバーに接続します。

  2. [ データベース] の一覧で、[ SUSDB] をクリックします。

  3. 次の SQL クエリを [クエリ] ウィンドウに貼り付けます。

    select count(*) from tbEventInstance
    
  4. [ クエリの実行 ] をクリックしてクエリを実行します。

Microsoft SQL Server Desktop Engine (Windows) (WMSDE) を実行している場合は、osql コマンドを使用して、tbEventInstance テーブルが 100 万行を超えているかどうかを確認することもできます。 このためには、コマンド プロンプトで以下のコマンドを入力し、Enter キーを押します。

"%programfiles%\Update Services\tools\osql\osql.exe" -S %COMPUTERNAME%\WSUS -E -dSUSDB -Q"SELECT COUNT(*) FROM dbo.tbEventInstance"

詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。

824684 マイクロソフトのソフトウェアの更新で使用される一般的な用語の説明