現象
Windows Server 2008 または Windows Server 2008 R2 を実行しているコンピューターに Microsoft SQL Server 2008 または Microsoft SQL Server 2008 R2 をインストールすることを前提としています。 Microsoft SQL Server Native Client 10.0 を使用して、アプリケーションが SQL Server 2008 または SQL Server 2008 R2 に接続すると、断続的に "配信不能スケジューラ" というエラーが表示されます。 注: SQL Server 2008 または SQL Server 2008 R2 のエラーログファイルには、"各" 出力不能スケジューラ "エラーが記録されます。さらに、SQL Server が断続的に応答を停止します。 この問題を回避するには、SQL Server の再起動が必要になることがあります。 注意事項
-
この修正プログラムは、SQL Native クライアントと SQL Server enginee の両方に適用されます。
-
SQL Server 2008 Service Pack 2 (SP2) をインストールしている場合、"生成外スケジューラ" というエラーは発生せず、SQL Server 2008 が応答を停止しません。 ただし、次のようなエラーメッセージが表示されることがあります。
エラーコード 26073-//エラー形式: TCP 接続は閉じていますが、SQL Server の子プロセスが接続のソケットの複製を保持している可能性があります。
原因
この問題が発生するのは、SQL Server Native Client 10.0 がソケットで TCP の終了呼び出しを正しく処理できないためです。
解決方法
注:
セキュリティ情報 MS11-049 に従って SQL Server GDR の修正プログラムを最近適用した場合、この記事で説明されている累積的な更新プログラムを適用することはできません。 累積更新プログラムのセットアップを使用して修正プログラムを適用すると、次のようなエラーメッセージが表示されます。
新しいバージョンの SQL Server update は、SQL Server インスタンス <インスタンス名> に既にインストールされているため、現在の sql server 更新プログラムを適用することはできません。 既にインストールされている SQL Server 更新プログラムのバージョンは、KB2494089 を含む GDR 10.2.4064.0 (10.2.4310.0) であり、現在の SQL Server update は KB2467239 で10.2.4272.0 ます。
このシナリオでは、MS11-049 の問題の修正プログラムに加えて、この KB 記事で説明されている問題の修正プログラムを含む GDR パッケージを適用する必要があります。 SQL Server ビルドの範囲に適用される、対応する GDR および QFE パッケージを見つけるには、次のセキュリティ情報の「よく寄せられる質問 (FAQ)」セクションを参照してください。
http://www.microsoft.com/technet/security/bulletin/MS11-049.mspxたとえば、SQL Server 2008 Service Pack 2 を実行していて、KB2494089 の GDR 修正プログラムを適用した場合、KB2491214 の修正プログラムを入手するには、QFE KB2494094 の更新プログラムを適用する必要があります。
累積的な更新プログラムの情報
この問題を解決するには、SQL Server およびコンピューター上で実行されている Windows Server 用の適切な更新プログラムを適用します。 注: この問題は、SQL Server Native Client と関数 ( CreateProcess 関数など) を使用して新しい子プロセスを作成するクライアントアプリケーションで発生する可能性があります。 この場合、Windows Server と SQL Server の両方のホットフィックスを適用する必要があります。
SQL Server の更新プログラム
SQL Server 2008 R2 の累積的な更新プログラムパッケージ6
この問題の修正プログラムは、累積的な更新プログラム6で最初にリリースされました。SQL Server 2008 R2 用の累積的な更新プログラムパッケージの入手方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
2489376 SQL Server 2008 R2 の累積的な更新プログラムパッケージ6 注: ビルドは累積的であるため、各新しい修正プログラムには、以前の SQL Server 2008 R2 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
981356 SQL Server 2008 R2 のリリース後にリリースされた SQL Server 2008 R2 ビルドSql server 2008 Service pack 2 の累積的な更新プログラムパッケージ 2 この問題に関する修正プログラムは、Sql Server 2008 Service Pack 2 の累積更新プログラム2で最初にリリースされました。この累積的な更新プログラムパッケージの詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
2467239 SQL Server 2008 Service Pack 2 の累積的な更新プログラムパッケージ2注: ビルドは累積的であるため、それぞれの新しい修正プログラムには、以前の SQL Server 2008 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
2402659 SQL Server 2008 Service Pack 2 がリリースされた後にリリースされた SQL Server 2008 ビルド Microsoft SQL Server 2008 修正プログラムは、特定の SQL Server サービスパック用に作成されます。 Sql server 2008 Service Pack 2 をインストールするには、SQL Server 2008 Service Pack 2 の修正プログラムを適用する必要があります。 既定では、SQL Server service pack に含まれているすべての修正プログラムは、次の SQL Server service pack に含まれています。
Windows Server の更新プログラム
Windows Server 2008 R2 の修正プログラム
976932 Windows 7 Service Pack 1 および Windows Server 2008 R2 に関する情報
Windows Server 2008 の修正プログラム
2398202 アプリケーションがソケット接続を閉じるかシャットダウンしたときに、Windows Server 2008 または Windows Vista でアプリケーションが応答を停止することがある
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
回避策
重要 このセクション、方法、またはタスクには、レジストリの変更方法を説明する手順が含まれています。ただし、レジストリを不適切に変更すると、重大な問題が発生する可能性があります。そのため、次の手順に従って慎重に行ってください。保護を強化するには、レジストリを変更する前にバックアップを作成します。次に、問題が発生した場合にレジストリを復元することができます。レジストリのバックアップと復元の詳細については、次の記事の番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
322756 Windows でレジストリをバックアップおよび復元する方法この問題を回避するには、 MSSQLServerのレジストリキーにSuperSocketNetlib\Tcp\TcpAbortiveClose値を追加します。そのためには、次の手順を実行します。
-
レジストリ エディターを開きます。 これを行うには、お使いのオペレーティングシステムに該当する方法を使用します。
-
Windows Vista の場合は、[スタート] ボタンをクリックし、[検索の開始] ボックスに「 regedit 」と入力して、enter キーを押します。
-
Windows XP の場合は、[ スタート] をクリックし、[ 実行] をクリックし、「 regedit」と入力して、[ OK]をクリックします。
-
-
次のレジストリサブキーを見つけてクリックします。
-
SQL Server 2008 または SQL Server 2008 R2 の既定のインスタンスの場合は、次のレジストリサブキーをクリックします。
HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQLServer\SuperSocketNetLib\Tcp\
-
SQL Server 2008 または SQL Server 2008 R2 の名前付きインスタンスの場合は、次のレジストリサブキーをクリックします。
HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.(InstanceName) \MSSQLServer\SuperSocketNetLib\Tcp\
-
-
[編集] メニューの [新規] をポイントし、[DWORD 値] をクリックします。
-
「 TcpAbortiveClose」と入力して、enter キーを押します。
-
[ 編集 ] メニューの [ 変更] をクリックします。
-
[小数点数] をクリックし、[値のデータ] ボックスに「 1 」と入力します。
-
レジストリ エディターを終了します。
-
SQL Server を再起動します。
参照情報
SQL Server Native Client のインストール方法の詳細については、次の Microsoft 開発者ネットワーク (MSDN) web サイトを参照してください。
SQL Server Native Client をインストールする方法SQL Server の段階的サービスモデルの詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
935897 SQL Server チームが段階的なサービスモデルを利用して、報告された問題の修正プログラムを提供するSQL Server 更新プログラムの名前付けスキーマの詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
822499Microsoft SQL Server ソフトウェア更新プログラムパッケージの新しい名前付けスキーマソフトウェア更新プログラムの用語の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。
824684 マイクロソフトのソフトウェアの更新で使用される一般的な用語の説明