Dépannage des erreurs de protocole lors du démarrage du moteur de base de données

Lorsque le Moteur de base de données SQL Server rencontre une erreur de protocole au démarrage, un message d'erreur est écrit dans le journal des erreurs SQL Server et dans le journal des événements Windows sous la forme suivante :

« Erreur : 17182, Gravité : 16, État : 1. » 1."

« Échec de l'initialisation TDSSNIClient avec l'erreur <x>, code d'état <y>. »

Dans ce message, <x> est le code d'erreur sous-jacent retourné par le sous-système de communication ou de sécurité et <y> est un état d'erreur de protocole SQL Server interne.

Notes

Le protocole de mémoire partagée et le protocole de canaux nommés partagent certains aspects de leur implémentation. L'échec d'un protocole peut entraîner l'échec de l'autre protocole. Si le protocole mentionné dans le message d'erreur est désactivé mais que l'erreur persiste, essayez de redémarrer avec les protocoles de mémoire partagée et de canaux nommés désactivés.

Interprétation du code d'erreur

Le code d'erreur sous-jacent <x> est en général un code d'erreur retourné par la couche réseau Windows ou par un appel SSPI (Security Support Provider Interface). Pour les codes d'erreur réseau Windows, l'exécution de la commande net helpmsg peut aider à interpréter le code. Les codes d'erreur SSPI ne sont pas si faciles à déchiffrer. Vous devrez peut-être effectuer des recherches dans la Base de connaissances (KB) Microsoft ou, si le Kit de développement logiciel (SDK) du système d'exploitation est installé, examiner le fichier WinError.h.

Interprétation du code d'état d'erreur de protocole

Les états d'erreur de protocole SQL Server sont répertoriés dans le tableau suivant. Notez que la plupart des états d'erreur indiquent une condition d'erreur interne, mais la valeur spécifique fournira des précisions sur la zone de protocole exacte concernée par l'erreur. Par exemple, si la valeur est comprise entre 7 et 30 (0x0A et 0x1E), l'erreur provient du traitement TCP/IP. Les codes d'état dans le message d'erreur sont présentés au format hexadécimal. Dans le tableau suivant, l'équivalent décimal est fourni par souci de clarté.

Plage de codes d'état au format hexadécimal

Plage de codes d'état au format décimal

Zone de protocole

0x03

3

Mémoire partagée

0x07-0x1E

7-30

TCP/IP

0x1F-0x23

31-35

DAC (Dedicated Administrator Connection)

0x35

53

Canaux nommés

0x36

54

VIA (Virtual Interface Architecture)

0x38

56

SSL (Secure Sockets Layer)

0x40-0x4F

64-79

Mémoire partagée

0x50-0x5F

80-95

Canaux nommés

0x60-0x6F

96-111

VIA

0x70-0x7F

112-127

HTTP

0x80-0x8F

128-143

SSL

0x90-0x9F

144-159

Général

Le tableau suivant énumère certains codes d'erreur courants.

Code d'état

Description

0x03

Erreur lors du démarrage de la prise en charge de la mémoire partagée

0x04

Tous les protocoles désactivés

0x0A

Impossible d'initialiser l'écouteur TCP/IP

0x1C

Serveur configuré pour écouter sur une adresse IP spécifique dans un environnement de cluster

0x1E

Adresse IP dupliquée détectée sur le réseau

0x35

Erreur lors du démarrage de la prise en charge des canaux nommés

0x36

Erreur lors du démarrage de la prise en charge VIA

0x38

Erreur lors de l'obtention ou de l'utilisation du certificat pour le protocole SSL

0x3A

Impossible d'initialiser les écouteurs de communication

0x40

Impossible d'initialiser l'écouteur de mémoire partagée

0x50

Impossible d'initialiser l'écouteur de canaux nommés

0x60

Impossible d'initialiser l'écouteur VIA

0x70

Impossible d'initialiser l'écouteur HTTP

0x80

Impossible d'initialiser la prise en charge du protocole SSL

Exemples

Voici un exemple d'erreur typique qui se produit au démarrage : « Échec de l'initialisation TDSSNIClient avec l'erreur 0x80092004, code d'état 0x38. »

La valeur 0x80092004 est un code d'erreur SSPI qui se traduit en CRYPT_E_NOT_FOUND. 0x38 est un code d'erreur interne qui signifie que la couche de communication SQL Server n'a pas pu initialiser l'écouteur. Cette erreur a été générée par le protocole SSL, car le certificat était introuvable.

Erreurs retournées lorsque tous les protocoles sont désactivés

Vous pouvez recevoir les erreurs suivantes lorsque tous les protocoles sont désactivés :

  • « Erreur : 17182, Gravité : 16, État : 1."

    « Échec de l'initialisation TDSSNIClient avec l'erreur 0xd, code d'état 0x4. »

  • « Erreur : 17182, Gravité : 16, État : 1."

    « Échec de l'initialisation TDSSNIClient avec l'erreur 0xd, code d'état 0x1. »

  • « Erreur : 17826, Gravité : 18, État : 3."

    « Impossible de démarrer la bibliothèque réseau en raison d'une erreur interne dans celle-ci. Pour déterminer la cause, consultez les erreurs qui précèdent immédiatement celle-ci dans le journal des erreurs. »

  • « Erreur : 17120, Gravité : 16, État : 1."

    « SQL Server n'a pas pu générer dynamiquement le thread FRunCM. Vérifiez le journal des erreurs de SQL Server et les journaux d'événements Windows pour plus d'informations sur des problèmes connexes éventuels. »