Compartir a través de


Solucionar problemas de errores de protocolo durante el inicio del motor de base de datos

Cuando SQL Server Database Engine (Motor de base de datos de SQL Server) encuentre un error de protocolo durante el inicio, se escribirá un mensaje de error en el registro de errores de SQL Server y en el Registro de eventos de Windows en el siguiente formato:

"Error: 17182, gravedad: 16, estado: 1."

"Error de inicialización de TDSSNIClient <x>, código de estado <y>."

En este mensaje, <x> es el código de error subyacente que devuelve el subsistema de comunicación o seguridad, e <y> es un estado de error de protocolo de SQL Server interno.

[!NOTA]

El protocolo de memoria compartida y el protocolo de canalizaciones con nombre comparten algunos aspectos de su implementación. Si un protocolo genera un error, puede causar que también se produzca un error en el otro. Si el protocolo indicado en el mensaje de error está deshabilitado pero el error persiste, intente iniciar de nuevo con los protocolos de memoria compartida y canalizaciones con nombre deshabilitados.

Interpretar el código de error

El código de error subyacente, <x>, suele ser un código de error que devuelve el nivel de red de Windows o una llamada de la interfaz del proveedor de compatibilidad para seguridad (SSPI). En el caso de los códigos de error de red de Windows, la ejecución del comando net helpmsg puede ayudar a interpretar el código. Los códigos de error SSPI no son tan sencillos de descifrar. Es posible que tenga que buscar en Microsoft Knowledge Base o, si está instalado el SDK del sistema operativo, examinar el archivo WinError.h.

Interpretar el código de estado del error de protocolo

En la siguiente tabla se enumeran los estados de error de protocolo de SQL Server. Tenga en cuenta que la mayoría de los estados de error indican una condición de error interna, pero el valor específico proporcionará información respecto al área de protocolo concreta con la que se relaciona el error. Por ejemplo, si el valor se encuentra entre 7 y 30 (0x0A y 0x1E), el error tiene su origen en el procesamiento TCP/IP. Los códigos de estado del mensaje de error se presentan en formato hexadecimal. En la siguiente tabla se proporciona el equivalente decimal para mayor claridad.

Intervalo de códigos de estado en formato hexadecimal

Intervalo de códigos de estado en formato decimal

Área de protocolo

0x03

3

Memoria compartida

0x07-0x1E

7-30

TCP/IP

0x1F-0x23

31-35

Conexión de administrador dedicada (DAC)

0x35

53

Canalizaciones con nombre

0x36

54

Adaptador de interfaz virtual (VIA)

0x38

56

Capa de sockets seguros (SSL)

0x40-0x4F

64-79

Memoria compartida

0x50-0x5F

80-95

Canalizaciones con nombre

0x60-0x6F

96-111

VIA

0x70-0x7F

112-127

HTTP

0x80-0x8F

128-143

SSL

0x90-0x9F

144-159

General

En la siguiente tabla se enumeran algunos códigos de error comunes.

Código de error

Descripción

0x03

Error al iniciar la compatibilidad con memoria compartida

0x04

Todos los protocolos deshabilitados

0x0A

No se puede inicializar la escucha TCP/IP

0x1C

Servidor configurado para escuchar en una dirección IP específica de un entorno de clúster

0x1E

Se ha detectado una dirección IP duplicada en la red

0x35

Error al iniciar la compatibilidad con canalizaciones con nombre

0x36

Error al iniciar la compatibilidad con VIA

0x38

Error al obtener o usar el certificado para SSL

0x3A

No se pueden inicializar las escuchas de comunicación

0x40

No se puede inicializar la escucha de memoria compartida

0x50

No se puede inicializar la escucha de canalizaciones con nombre

0x60

No se puede inicializar la escucha VIA

0x70

No se puede inicializar la escucha HTTP

0x80

No se puede inicializar la compatibilidad con SSL

Ejemplos

A continuación se incluye un ejemplo de un error típico que se produce durante el inicio: "Error de inicialización de TDSSNIClient 0x80092004, código de estado 0x38".

El valor 0x80092004 es un código de error SSPI que se convierte en CRYPT_E_NOT_FOUND. 0x38 es un código de error interno que indica que el nivel de comunicaciones de SQL Server no pudo inicializar la escucha. El error fue generado por SSL porque no encontró el certificado.

Errores que se devuelven cuando todos los protocolos están deshabilitados

Cuando todos los protocolos están deshabilitados, pueden producirse los siguientes errores:

  • "Error: 17182, gravedad: 16, estado: 1."

    "Error de inicialización de TDSSNIClient 0xd, código de estado 0x4."

  • "Error: 17182, gravedad: 16, estado: 1."

    "Error de inicialización de TDSSNIClient 0xd, código de estado 0x1."

  • "Error: 17826, gravedad: 18, estado: 3."

    "No se pudo iniciar la biblioteca de red debido a un error interno. Para determinar la causa, revise los errores inmediatamente anteriores a éste en el registro de errores."

  • "Error: 17120, gravedad: 16, estado: 1."

    "SQL Server no pudo generar el subproceso FRunCM. Busque información sobre posibles problemas relacionados en el registro de errores de SQL Server y el registro de eventos de Windows."