Eliminar conexiones
El agrupador de conexiones elimina una conexión del grupo después de haber estado inactivo durante mucho tiempo, o si el agrupador detecta que la conexión con el servidor se ha cortado.
Tenga en cuenta que una conexión cortada solo se puede detectar después de intentar comunicarse con el servidor. Si se encuentra una conexión que ya no está conectada al servidor, se marca como no válida.
Las conexiones no válidas se eliminan del grupo de conexiones solo cuando se cierran o reclaman.
Si existe una conexión con un servidor que ha desaparecido, esta conexión se puede extraer del grupo incluso si el agrupador de conexiones no ha detectado la conexión cortada y la ha marcado como no válida.
Este es el caso porque la sobrecarga de verificar que la conexión sigue siendo válida eliminaría los beneficios de tener un agrupador al causar que ocurra otro viaje de ida y vuelta al servidor.
Cuando esto ocurre, el primer intento de usar la conexión detectará que se ha cortado la conexión y se produce una excepción.
Básicamente, lo que está viendo es esa excepción en la última oración.
Se toma una conexión del grupo de conexiones, la aplicación no sabe que la conexión física se ha ido, se intenta utilizarla bajo el supuesto de que la conexión física todavía está allí.
Y obtienes tu excepción.
Hay algunas razones comunes para esto.
- El servidor se ha reiniciado, esto cerrará las conexiones existentes.
En este caso, eche un vistazo al registro de SQL Server, que generalmente se encuentra en: C: \ Archivos de programa \ Microsoft SQL Server \\ MSSQL \ LOG
Si la marca de tiempo para el inicio es muy reciente, entonces podemos sospechar que esto es lo que causó el error. Intente correlacionar esta marca de tiempo con el tiempo de excepción.
2009-04-16 11: 32: 15.62 Server Logging Mensajes de SQL Server en el archivo 'C: \ Archivos de programa \ Microsoft SQL Server \ MSSQL.1 \ MSSQL \ LOG \ ERRORLOG'.
- Alguien o algo ha matado el SPID que se está utilizando.
Nuevamente, eche un vistazo en el registro de SQL Server. Si encuentra una muerte, intente correlacionar esta marca de tiempo con la hora de la excepción.
2009-04-16 11: 34: 09.57 spidXX El ID de proceso XX fue eliminado por el nombre de host xxxxx, el ID de proceso de host XXXX.
- Hay una conmutación por error (en una configuración espejo, por ejemplo) nuevamente, eche un vistazo en el registro de SQL Server.
Si hay una conmutación por error, intente correlacionar esta marca de tiempo con la hora de excepción.
2009-04-16 11: 35: 12.93 spidXX La base de datos reflejada "" está cambiando roles de "PRINCIPAL" a "ESPEJO" debido a la Conmutación por falla.