データベース エンジンの起動時に発生するプロトコル エラーのトラブルシューティング

SQL Server データベース エンジンの起動時にプロトコル関連のエラーが生じると、次の形式のエラー メッセージが SQL Server エラー ログと Windows イベント ログに記述されます。

"エラー: 17182、重大度: 16、状態: 1。"

"エラー <x>、状態コード <y> で、TDSSNIClient の初期化に失敗しました。"

このメッセージで、<x> は通信サブシステムまたはセキュリティ サブシステムによって返される基礎的なエラー コードであり、<y> は内部的な SQL Server プロトコル エラー状態です。

注意

共有メモリ プロトコルと名前付きパイプ プロトコルは、実装の一部を共有しています。一方のプロトコルに障害が発生すると、もう一方のプロトコルにも障害が発生する可能性があります。エラー メッセージに示されているプロトコルを無効にしてもエラーが残る場合は、共有メモリと名前付きパイプの両方を無効にして再起動を試みてください。

エラー コードの解釈

基礎的なエラー コードである <x> は、通常は Windows ネットワーク レイヤまたはセキュリティ サポート プロバイダ インターフェイス (SSPI) の呼び出しによって返されるエラー コードです。Windows ネットワークのエラー コードについては、net helpmsg コマンドの実行がコードの解釈に役立つ場合があります。SSPI エラー コードを解読するのは容易ではありません。Microsoft のサポート技術情報を検索したり、オペレーティング システムの SDK がインストールされている場合は、WinError.h ファイルを調べてください。

プロトコル エラー状態コードの解釈

SQL Server のプロトコル エラー状態を次の表に示します。ほとんどのエラー状態は内部エラー条件を示していますが、値を見ることにより、エラーが該当する特定のプロトコル領域をある程度知ることができます。たとえば、値が 7 から 30 まで (0x0A から 0x1E まで) の場合、エラーは TCP/IP 処理から生じています。エラー メッセージの状態コードは 16 進形式で表示されます。次の表では、わかりやすいように 10 進形式でも示しています。

状態コードの範囲 (16 進形式)

状態コードの範囲 (10 進形式)

プロトコル領域

0x03

3

共有メモリ

0x07-0x1E

7-30

TCP/IP

0x1F-0x23

31-35

専用管理者接続 (DAC)

0x35

53

名前付きパイプ

0x36

54

仮想インターフェイス アダプタ (VIA)

0x38

56

SSL (Secure Sockets Layer)

0x40-0x4F

64-79

共有メモリ

0x50-0x5F

80-95

名前付きパイプ

0x60-0x6F

96-111

VIA

0x70-0x7F

112-127

HTTP

0x80-0x8F

128-143

SSL

0x90-0x9F

144-159

全般

次の表に、一般的なエラー コードをいくつか示します。

状態コード

説明

0x03

共有メモリ サポートの開始中にエラーが発生しました

0x04

すべてのプロトコルが無効になっています

0x0A

TCP/IP リスナを初期化できません

0x1C

サーバーがクラスタ環境で特定の IP アドレスを待機するように構成されています

0x1E

ネットワークで重複する IP アドレスが検出されました

0x35

名前付きパイプ サポートの開始中にエラーが発生しました

0x36

VIA サポートの開始中にエラーが発生しました

0x38

SSL の証明書の取得中または使用中にエラーが発生しました

0x3A

通信リスナを初期化できません

0x40

共有メモリ リスナを初期化できません

0x50

名前付きパイプ リスナを初期化できません

0x60

VIA リスナを初期化できません

0x70

HTTP リスナを初期化できません

0x80

SSL サポートを初期化できません

以下に、起動時によく発生するエラー "エラー 0x80092004、状態コード 0x38 で、TDSSNIClient の初期化に失敗しました。" の例を示します。

値 0x80092004 は、"CRYPT_E_NOT_FOUND" と解釈される SSPI エラー コードです。0x38 は、SQL Server の通信レイヤがリスナを初期化できなかったことを示す内部エラー コードです。このエラーは、SSL が証明書を確認できなかったために生成されたものです。

すべてのプロトコルが無効になっているときに返されるエラー

すべてのプロトコルが無効になっているときに、次のエラーが返されることがあります。

  • "エラー: 17182、重大度: 16、状態: 1。"

    "エラー 0xd、状態コード 0x4 で、TDSSNIClient の初期化に失敗しました。"

  • "エラー: 17182、重大度: 16、状態: 1。"

    "エラー 0xd、状態コード 0x1 で、TDSSNIClient の初期化に失敗しました。"

  • "エラー: 17826、重大度: 18、状態: 3。"

    "ネットワーク ライブラリで内部エラーが発生したので、ネットワーク ライブラリを起動できませんでした。原因を判断するには、このエラーの直前に発生したエラーをエラー ログで確認してください。"

  • "エラー: 17120、重大度: 16、状態: 1。"

    "SQL Server は FRunCM スレッドを起動できませんでした。関連する可能性のある問題の情報については、SQL Server エラー ログと Windows イベント ログを確認してください。"