Estamos utilizando la autenticación de SQL (para reducir el número de grupos de conexiones) y cadenas de conexión .NET 4.0 para conectarse a SQL Server Enterprise Edition 2012 SP1 en un servidor empresarial Windows 2008 R2:
Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64)
19 de octubre de 2012 13:38:57
Copyright (c) Microsoft Corporation
Enterprise Edition (64 bits) en Windows NT 6.1 (Build 7601: Service Pack 1)
Utilizamos alrededor de 50 servidores divididos en 8 grupos diferentes en diferentes partes de un sitio web.
Nuestro sitio web está utilizando este SQL Server para registrar datos de seguimiento de visitas. En los últimos días ha escupido los siguientes mensajes sobre el restablecimiento de los grupos de conexiones:
El cliente no pudo reutilizar una sesión con SPID 1327, que se había restablecido para la agrupación de conexiones. El ID de falla es 46. Este error puede haber sido causado por una falla de operación anterior. Verifique los registros de error para detectar operaciones fallidas inmediatamente antes de este mensaje de error.
El registro de errores lee:
Error: 18056, gravedad: 20, estado: 46.
El cliente no pudo reutilizar una sesión con SPID 959, que se había restablecido para la agrupación de conexiones. El ID de falla es 46. Este error puede haber sido causado por una falla de operación anterior. Verifique los registros de error para detectar operaciones fallidas inmediatamente antes de este mensaje de error.
Error de inicio de sesión para el usuario 'xxxx'. Motivo: no se pudo abrir la base de datos 'xxxxxxxx' configurada en el objeto de inicio de sesión al volver a validar el inicio de sesión en la conexión. [CLIENTE: 10.xx.xx.xxx]
Después de investigar un poco, encontré este documento en el blog de CSS: Cómo funciona: Error 18056: el cliente no pudo reutilizar una sesión con SPID ##, que Aaron Bertrand había reiniciado para la agrupación de conexiones, y Aaron Bertrand: Solución de problemas Error 18456 . Sé que el número de error es diferente, pero la ID de falla es la misma con una cantidad de mensajes idénticos).
El ID de falla 46 sugiere que el inicio de sesión no tenía permisos. Nuestros inicios de sesión predeterminados a la base de datos maestra y el nombre de la base de datos se especifica en la cadena de conexión.
Quería verificar el número de grupos de cadenas de conexión, etc. y verifiqué todos los contadores en Perfmon .Net Data Provider for SqlServer
. Solo me dio la opción de defaultdomain9675
la instancia, así que seleccioné eso asumiendo que es un nombre de ID generado por el sistema para nuestra red Datacentre. Lamentablemente, todos los contadores están leyendo cero. En uno de nuestros otros servidores principales, los grupos de conexiones rondan los 10, que es lo que esperaba ver en un servidor en buen estado con ese tipo de carga.
Mi pregunta es 3 veces
¿Alguien puede sugerir por qué no se muestra Windows 2008 R2 Server
.Net Data Provider for SqlServer
?¿Alguien ha experimentado esto ya que obviamente creo que el inicio de sesión sin permisos es una pista falsa?
Si diferentes grupos de servidores web tienen la misma sintaxis de cadena de conexión pero con espacios en blanco ligeramente diferentes, ¿esto causaría que el servidor use otro grupo de conexiones?
La configuración de memoria mínima y máxima es de 20 GB y 58 GB respectivamente. El servidor es un servidor de base de datos dedicado con 64 GB de RAM. No creo que el problema sea la memoria, ya que la caja parece tener una expectativa de página decente. El cierre automático no está habilitado. El servidor siempre está activo: este es un sitio web 24x7 con un uso intensivo.