SQL Server がリッスンしている TCP/IP ポートが別のアプリケーションで使用されていると、そのポートに SQL Server がバインドできない

文書翻訳 文書翻訳
文書番号: 307197 - 対象製品
すべて展開する | すべて折りたたむ

現象

重要 : この資料には、レジストリの編集方法が記載されています。万一に備えて、編集の前には必ずレジストリをバックアップし、レジストリの復元方法を理解しておいてください。バックアップ、復元、および編集方法の詳細を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
256986 Microsoft Windows レジストリの説明
SQL 仮想サーバーを別のノードにフェールオーバーしてから元のノードにフェールバックすると、SQL 仮想サーバーがリッスンしているポートへのバインドが失敗することがあります。このため、SQL 仮想サーバーでは、TCP/IP での着信接続の受け付けにも失敗します。この種類のエラーが発生すると、次のエラー メッセージが SQL Server のエラー ログに記録されます。

2000-06-26 09:54:10.72 server SuperSocket 情報 : TCP ポート 1433 でバインドに失敗しました。
2000-06-26 09:54:10.74 server SQL Server は Named Pipes で受信を待っています。
2000-06-26 09:54:10.74 server SQL Server はクライアント接続できます。
: この現象は、クラスタ化されていない SQL Server 2000 コンピュータ、および SQL Server 2005 コンピュータでも発生する可能性があります。

原因

SQL Server がリッスンしているポートの制御を取得する、別のアプリケーションがコンピュータ上で実行されています。この事例では、ポートは TCP ポート 1433 です。この問題は、TCP/IP クライアントの負荷が大きい状況でも発生します。

この現象には、別の原因が存在する可能性があります。この資料の回避策を使用しても問題が解決しない場合は、以下の「サポート技術情報」 (Microsoft Knowledge Base) の資料を参照してください。
293107 [PRB] TCP/IP ポートが別のアプリケーションによって使用される
319578 SQL Server のフェールオーバー クラスタ ノードの IP アドレスを変更するとエラー メッセージ "バインドに失敗しました" が表示される
312935 [FIX] SQL Server の起動時に TCP/IP ポートにバインドできない
308091 [BUG] SQL Server 2000 のインスタンスが複数ある場合、[サーバーを非表示] を使用できない

回避策

警告 : レジストリ エディタまたは別の方法を使用してレジストリを誤って変更すると、深刻な問題が発生することがあります。最悪の場合、オペレーティング システムの再インストールが必要になることがあります。マイクロソフトは、レジストリの変更により発生した問題に関しては、一切責任を負わないものとします。レジストリの変更は、自己の責任において行ってください。

この問題を回避するには、特定のインスタンスに対応する MSSQLServer のレジストリ キーに
SuperSocketNetlib\Tcp\TcpAbortiveClose
の値を追加します。これを行うには、以下の手順を実行します。
  1. コマンド ラインから、レジストリ エディタ (Regedt32.exe) を起動します。
  2. レジストリで次のキーを見つけてクリックします。
    • SQL Server 2000 の場合
      HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetlib\Tcp
    • SQL Server 2005 の場合
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.x\MSSQLServer\SuperSocketNetLib\Tcp\


      : MSSQL.x の部分は、使用しているシステムに対応する値に置き換えてください。MSSQL.x に対応する値は、次のレジストリ サブキーにある
      MSSQLSERVER
      レジストリ エントリの値から見つけることができます。
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL\
  3. [編集] メニューの [新規] をポイントし、[DWORD 値] をクリックします。
  4. TcpAbortiveClose と入力し、Enter キーを押します。
  5. [編集] メニューの [修正] (または [変更]) をクリックします。
  6. [10 進] をクリックし、[値のデータ] ボックスに 1 と入力します。
  7. レジストリ エディタを終了します。
: SQL Server 2000 インスタンスで、レジストリ キーが作成済みで 1 に設定されている場合、インスタンスの移行時に SQL Server 2005 の場所に移行されます。

詳細

関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
286303 動的ポート検出時の SQL Server 2000 ネットワーク ライブラリの動作
293107 [PRB] TCP/IP ポートが別のアプリケーションによって使用される

プロパティ

文書番号: 307197 - 最終更新日: 2006年3月24日 - リビジョン: 8.4
この資料は以下の製品について記述したものです。
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
キーワード:?
kbprb KB307197
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com