Microsoft は、Microsoft SQL Server 2012 の修正プログラムを1つのダウンロード可能ファイルに配布します。 修正プログラムは累積的であるため、新しいリリースごとに、以前の SQL Server 2012 更新プログラムのリリースに含まれていたすべての修正プログラムとセキュリティ更新プログラムが含まれています。

現象

Microsoft SQL Server 2012 の複数のセッションで同時に多くの xp_cmdshell ストアドプロシージャを実行することを前提とします。 この状況では、最後の実行が完了するまで、 xp_cmdshell ストアドプロシージャの最初の実行は完了しません。

原因

この問題は、 xp_cmdshell ストアドプロシージャを同時に実行するときに開かれるプロセスによってハンドルが継承されるために発生します。 CreateProcess API では、標準の出力とエラーメッセージをリダイレクトするためにハンドルの継承を行う必要があります。 同時に xp_cmdshell ストアドプロシージャを複数回実行する場合、新しく開かれたプロセスは既存のプロセスからハンドルを継承できます。 ただし、 xp_cmdshell ストアドプロシージャは、開いているすべてのプロセスによってハンドルが閉じられるのを待ちます。 そのため、複数のプロセスがハンドルを継承する場合、すべての xp_cmdshell 実行は、最も時間のかかるプロセスによってハンドルが閉じられるまで待機する必要があります。

解決方法

この問題を解決するには、次の累積的な更新プログラムを適用します。 この更新プログラムでは、クロスプロセスのハンドルの継承を防ぐ CreateProcess API STARTUPINFOEX オプションが追加されています。

累積的な更新プログラムの情報

SQL Server 2012 Service Pack 1 の累積的な更新プログラムパッケージ1

この問題の修正プログラムは、累積的な更新プログラム1で最初にリリースされました。SQL Server 2012 Service Pack 1 用の累積的な更新プログラムパッケージの入手方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

2765331 SQL Server 2012 Service Pack 1 の累積的な更新プログラムパッケージ1注: ビルドは累積的であるため、それぞれの新しい修正プログラムには、以前の SQL Server 2012 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。

2772858 SQL Server 2012 Service Pack 1 がリリースされた後にリリースされた SQL Server 2012 ビルド

SQL Server 2012

この問題の修正プログラムは、累積的な更新プログラム4で最初にリリースされました。SQL Server 2012 用の累積更新プログラムパッケージの入手方法の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

2758687 SQL Server 2012 の累積更新プログラムパッケージ4注: ビルドは累積的であるため、それぞれの新しい修正プログラムには、以前の SQL Server 2012 fix release に含まれていたすべての修正プログラムとセキュリティ修正プログラムが含まれています。 この修正プログラムを含む最新の修正プログラムを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。

2692828 SQL Server 2012 がリリースされた後にリリースされた SQL Server 2012 ビルド

状態

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

関連情報

CreateProcess 関数の詳細については、次の MSDN web サイトを参照してください。

CreateProcess 関数に関する一般的な情報Xp_cmdshell ストアドプロシージャの詳細については、次の MSDN web サイトを参照してください。

Xp_cmdshell ストアドプロシージャに関する一般的な情報 同様の問題の詳細については、次の記事番号をクリックして、Microsoft サポート技術情報の記事を参照してください。

315939 PRB: CreateProcess の呼び出し中に子が意図しないハンドルを継承する

ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

翻訳品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?

フィードバックをお送りいただきありがとうございます!

×