現象
クライアント コンピューターは、Microsoft Windows Software Update Services (WSUS) サーバーに報告しません。 さらに、次の現象が発生する可能性があります。
次のエラー メッセージは、クライアント コンピューターのWindowsupdate.log ログ ファイルに記録されます。
注
警告: hr = 80244008でサーバーにイベントをアップロードできませんでした
Microsoft SQL Serverタイムアウト エラー メッセージは、WSUS サーバーの管理コンソールに表示されます。
%programfiles%\Microsoft Windows Update Services\LogFiles フォルダーにあるSoftwareDistribution.log ファイルには、次のようなメッセージが含まれています。
注
<日付>
<時間>
UTC エラー 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 Query Analyzer で次のコマンドを実行します。
TRUNCATE TABLE dbo.tbEventInstanceAdditionally、自動削除プロセスを停止し、削除プロセスの頻度を増やすことができます。 削除プロセスの頻度を増やすと、WSUS はより小さなチャンクで行を削除しますが、tbEventInstance テーブルのサイズは維持されます。
自動削除プロセスを停止し、削除プロセスの頻度を 1 時間に設定するには、SQL Query Analyzer で次のコマンドを実行します。
UPDATE dbo.tbConfigurationB SET AutoPurgeDetectionPeriod = 1このコマンドは、削除プロセスを 1 時間ごとに実行します。 このコマンドを実行すると、WSUS は 1 時間あたり 1,000 イベントの割合で 1 日あたり 24,000 イベントを削除します。 これは、削除プロセスに設定できる最も高い頻度です。
正しい自動削除頻度と正しい検出サイクルの頻度を計算するには、WSUS クライアントの数を把握している必要があります。
次の数式を使用して、削除プロセスの最小頻度と検出サイクルの頻度を計算します。
最小削除プロセス頻度: (24/DF) x CL
検出サイクルの頻度: (CL/PF) x 24Note DF は検出サイクルの頻度、CL は WSUS クライアントの数、PF は最小消去頻度です。
たとえば、WSUS クライアントが 4,000 個あり、検出サイクルの頻度を 1 日あたり 8 サイクルに設定した場合、約 32,000 個のイベントを tbEventInstance テーブルに記録できます。 1 日あたりの削除プロセスで削除できるイベントの最大数は、削除頻度を 1 時間に設定すると 24,000 イベントです。 そのため、検出サイクルの頻度を減らして、クライアントによって生成されるイベントの数が 24,000 未満になるようにすることができます。
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
追加情報
tbEventInstance テーブルが 100 万行を超えたかどうかを判断する方法
SQL Query Analyzer を起動し、ローカル サーバーに接続します。
[データベース] の一覧 で 、[ SUSDB] をクリックします。
[クエリ] ウィンドウに次の SQL クエリを貼り付けます。
select count(*) from tbEventInstance[ クエリの実行 ] をクリックしてクエリを実行します。
Microsoft SQL Server デスクトップ エンジン (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 マイクロソフトのソフトウェアの更新で使用される一般的な用語の説明