データベース エンジンの起動時に発生するプロトコル エラーのトラブルシューティング
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 イベント ログを確認してください。"