es normal que los procesos se queden abiertos?

16/07/2005 - 12:44 por Jesús Bosch Aiguadé | Informe spam
Buenos dias,

Accediendo a SQLSERVER desde ASP.NET, he observado que se me abren procesos
en la BD (lógico no? administrador corporativo->administración->actividad
actual ->información del proceso).

Cada vez que abro una conexión a la BD desde sqlclient de .net, un nuevo
proceso aparece en la lista, hasta aquí bien. Lo sorpendente, es que tras
cerrar las conexiones, el proceso sigue allí! (conn.close hecho,
evidentemente) A veces, tras cerrar la conexión hago conn.dispose(), y
quedan menos procesos abiertos, pero siguen quedando algunos!

En una aplicación grande que estoy haciendo, al final tengo cientos de
procesos, y llega un punto en el que el SQLSERVER ya no puede más y me
devuelve el error:

Valor de tiempo de espera caducado. El período de tiempo de espera expiró
antes de obtener una conexión del grupo. Esto puede suceder porque todas las
conexiones de la agrupación estaban en uso y se alcanzó el máximo tamaño del
grupo.
Descripción: Excepción no controlada al ejecutar la solicitud Web actual.
Revise el seguimiento de la pila para obtener más información acerca del
error y dónde se originó en el código.

Detalles de la excepción: System.InvalidOperationException: Valor de tiempo
de espera caducado. El período de tiempo de espera expiró antes de obtener
una conexión del grupo. Esto puede suceder porque todas las conexiones de la
agrupación estaban en uso y se alcanzó el máximo tamaño del grupo



He buscado por internet y he visto que MUCHOS tienen el mismo problema, pero
no hay soluciones. Algunos proponen alargar el timeout, pero con eso no se
arregla nada, ya que los procesos siguen quedando abiertos...

Gracias de antemano por su ayuda,

Jesús

Preguntas similare

Leer las respuestas

#1 Maxi
16/07/2005 - 17:18 | Informe spam
Hola no es ningun problema esto :-) esto sucede porque ADO.NET usa algo
llamado Pool de conexiones, la idea cual es:

Conectar y desconectar es una operacion costosa para un motor, entonces que
hace el pool, mantiene la conexion (entre comillas) si alguien quiere volver
a usarla el proceso es muy simple y rapido.

Te recomiendo una lectura al pool de conexiones, lo puedes deshabilitar pero
no te lo recomiendo, mucho menos en asp.net


Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas

Msn_messager:
mail: Maxi.da[arroba]gmail.com

"Jesús Bosch Aiguadé" escribió en el mensaje
news:
Buenos dias,

Accediendo a SQLSERVER desde ASP.NET, he observado que se me abren
procesos en la BD (lógico no? administrador
corporativo->administración->actividad actual ->información del proceso).

Cada vez que abro una conexión a la BD desde sqlclient de .net, un nuevo
proceso aparece en la lista, hasta aquí bien. Lo sorpendente, es que tras
cerrar las conexiones, el proceso sigue allí! (conn.close hecho,
evidentemente) A veces, tras cerrar la conexión hago conn.dispose(), y
quedan menos procesos abiertos, pero siguen quedando algunos!

En una aplicación grande que estoy haciendo, al final tengo cientos de
procesos, y llega un punto en el que el SQLSERVER ya no puede más y me
devuelve el error:

Valor de tiempo de espera caducado. El período de tiempo de espera expiró
antes de obtener una conexión del grupo. Esto puede suceder porque todas
las conexiones de la agrupación estaban en uso y se alcanzó el máximo
tamaño del grupo.
Descripción: Excepción no controlada al ejecutar la solicitud Web actual.
Revise el seguimiento de la pila para obtener más información acerca del
error y dónde se originó en el código.

Detalles de la excepción: System.InvalidOperationException: Valor de
tiempo de espera caducado. El período de tiempo de espera expiró antes de
obtener una conexión del grupo. Esto puede suceder porque todas las
conexiones de la agrupación estaban en uso y se alcanzó el máximo tamaño
del grupo



He buscado por internet y he visto que MUCHOS tienen el mismo problema,
pero no hay soluciones. Algunos proponen alargar el timeout, pero con eso
no se arregla nada, ya que los procesos siguen quedando abiertos...

Gracias de antemano por su ayuda,

Jesús

Respuesta Responder a este mensaje
#2 xus
18/07/2005 - 11:22 | Informe spam
al final encontré una función que hacia un return antes de cerrar la
conexión, gracias ;)

"Maxi" escribió en el mensaje
news:
Hola no es ningun problema esto :-) esto sucede porque ADO.NET usa algo
llamado Pool de conexiones, la idea cual es:

Conectar y desconectar es una operacion costosa para un motor, entonces
que hace el pool, mantiene la conexion (entre comillas) si alguien quiere
volver a usarla el proceso es muy simple y rapido.

Te recomiendo una lectura al pool de conexiones, lo puedes deshabilitar
pero no te lo recomiendo, mucho menos en asp.net


Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas

Msn_messager:
mail: Maxi.da[arroba]gmail.com

"Jesús Bosch Aiguadé" escribió en el mensaje
news:
Buenos dias,

Accediendo a SQLSERVER desde ASP.NET, he observado que se me abren
procesos en la BD (lógico no? administrador
corporativo->administración->actividad actual ->información del proceso).

Cada vez que abro una conexión a la BD desde sqlclient de .net, un nuevo
proceso aparece en la lista, hasta aquí bien. Lo sorpendente, es que tras
cerrar las conexiones, el proceso sigue allí! (conn.close hecho,
evidentemente) A veces, tras cerrar la conexión hago conn.dispose(), y
quedan menos procesos abiertos, pero siguen quedando algunos!

En una aplicación grande que estoy haciendo, al final tengo cientos de
procesos, y llega un punto en el que el SQLSERVER ya no puede más y me
devuelve el error:

Valor de tiempo de espera caducado. El período de tiempo de espera expiró
antes de obtener una conexión del grupo. Esto puede suceder porque todas
las conexiones de la agrupación estaban en uso y se alcanzó el máximo
tamaño del grupo.
Descripción: Excepción no controlada al ejecutar la solicitud Web actual.
Revise el seguimiento de la pila para obtener más información acerca del
error y dónde se originó en el código.

Detalles de la excepción: System.InvalidOperationException: Valor de
tiempo de espera caducado. El período de tiempo de espera expiró antes de
obtener una conexión del grupo. Esto puede suceder porque todas las
conexiones de la agrupación estaban en uso y se alcanzó el máximo tamaño
del grupo



He buscado por internet y he visto que MUCHOS tienen el mismo problema,
pero no hay soluciones. Algunos proponen alargar el timeout, pero con eso
no se arregla nada, ya que los procesos siguen quedando abiertos...

Gracias de antemano por su ayuda,

Jesús





email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida