![]() |
El método close no se refleja en SQL Server ¡Hola! El problema es el siguiente. Hemos desarrollado una aplicación web ASP.NET usando SQL Server 2000 y estamos experimentando problemas de rendimiento. Al verificar la información de procesos vía Enterprise Manager (o al ejecutar sp_who) vemos que el número de procesos se incrmenta gradualmente hasta saturar el servidor; el estatus de dichos procesos se mantiene en Sleeping. He escrito el siguiente código para probar el cierre de conexión: Dim Cnn As New SqlConnection("Cadena de conexion") Dim Cmd As New SqlCommand("SELECT ...", Cnn) Dim Rst As SqlDataReader Cmd.Connection.Open() rst = Cmd.ExecuteReader(CommandBehavior.CloseConnection) rst.close Notamos lo siguiente: 1.- Al llegar a la instrucción de apertura de conexión de inmediato vemos reflejada la conexión en el Servidor de SQL. 2.- Después de pasar por el método close el proceso se sigue viendo en el Servidor de SQL, incluso cuando la aplicación ha terminado; el estado en el que permanece es Sleeping. 3.- El proceso sigue vivo en el server de SQL incluso agregando el cierre de conexión de manera explícita. 4.- Esto sucede incluso cuando se usa un adaptador y un dataset. ¿Qué sucede? ¿ADO.NET no le avisa al IIS que cierre la conexión? ¿IIS no le informa a SQL Server que la cierre? ¿Lo que estamos viendo en SQL son sesiones huérfanas? Espero me puedan ayudar. Saludos y gracias de antemano. |
:risa: :risa: :risa: :risa: :risa: :risa: Te falta cerrar la conexion :-D |
Ya :serio: Cita:
|
Según la documentación al utilizar "CommandBehavior.CloseConnection" la conexión utilizada se cierra en automático, de cualquier forma el problema persiste aún cuando se hace: Cnn.close Cnn.Dispose Cmd.Dispose Cnn = nothing Cmd = Nothing |
Yo tuve el mismo problema. Solucione utilizando la clase SQLHelper para hacer las consultas solo asi pude eliminar las conexiones que se quedaban por cada consulta. |
| La zona horaria es GMT -6. Ahora son las 20:49. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.