Problema con la conexión a sql

21/12/2005 - 13:48 por hal9000 | Informe spam
Tengo un problema al intentar restaurar la base de datos de sql, lo hago llamando a un procedimiento almacenado que es el que se encarga de restaurar pero me dice que la base de datos está en uso y no se puede obtener uso exclusivo, he comprobado todas las conexiones y readers y adapters que habia abierto antes para otras cosas y estan todos cerrados, es decir todos con su conexion.close() etc... y sigue sin dejarme restaurar, cuando ejecuto el procedimiento solo, es decir en un programa que solo llama al procedimiento de restaurar si me deja, por eso es un poco rayante que no me deje cuando lo hago en el programa principal porque estoy seguro de que cierro todo antes de intentar restaurar, ¿ me podría decir alguien si puede ser por la cache de conexiones que guarda c#?, he oido algo de eso, o ¿porque podria ser?, ¿o como lo podria solucionar?, o si hay algo para cerrar todas las conexiones activas..

Gracias

hal9000

Ver este tema: http://www.softwaremix.net/viewtopic-467573.htm

Enviado desde http://www.softwaremix.net
 

Leer las respuestas

#1 A.Poblacion
21/12/2005 - 16:29 | Informe spam
"hal9000" wrote in message
news:

Tengo un problema al intentar restaurar la base de datos de sql, lo hago
llamando a un procedimiento almacenado que es el que se encarga de
restaurar pero me dice que la base de datos está en uso y no se puede
obtener uso exclusivo, he comprobado todas las conexiones y readers y
adapters que habia abierto antes para otras cosas y estan todos cerrados,
es decir todos con su conexion.close() etc... y sigue sin dejarme
restaurar, cuando ejecuto el procedimiento solo, es decir en un programa
que solo llama al procedimiento de restaurar si me deja, por eso es un
poco rayante que no me deje cuando lo hago en el programa principal porque
estoy seguro de que cierro todo antes de intentar restaurar, ¿ me podría
decir alguien si puede ser por la cache de conexiones que guarda c#?, he
oido algo de eso, o ¿porque podria ser?, ¿o como lo podria solucionar?, o
si hay algo para cerrar todas las conexiones activas...




No basta con hacer un Close() de las conexiones. El Close() las deja
abiertas y simplemente las devuelve al pool de conexiones. La siguiente vez
que se vuelve a abrir una conexión igual, en lugar de abrirla se recoge del
pool la que ya estaba abierta.

En teoría, las conexiones se retiran del pool si les haces un Dispose(),
pero alguna vez lo he probado y no funcionaba nada bien (aunque eso fue en
los tiempos del framework 1.0 y sin ningún service pack, a lo mejor en las
versiones más recientes el Dispose cierra bien las conexiones).

Preguntas similares