alternativa a pooling=false en backup y restore

19/12/2007 - 11:10 por el.sarda | Informe spam
me gustaria saber si alguien conoce una alternativa a pooling=false
para hacer un backup y restore y no tener el problema de las
conexiones abiertas.

para que me funcione todo con pooling=false, uso:

desde la BD de la cual quiero hacer el backup, hago:

string consulta = "BACKUP DATABASE [" + nombreBD + "] TO DISK='" +
directorioBackup + nombreBackup + "' WITH INIT";

desde la BD master hago el restore:

string consulta = "RESTORE DATABASE [" + nombreBD + "] FROM DISK='" +
directorioBackup + nombreBackup + "' WITH REPLACE";

las cadenas de conexion son:

Data Source=MAKINITA\SQLSERVER;pooling=false;Initial
Catalog=nombreBD;Integrated Security=True

Data Source=MAKINITA\SQLSERVER;Initial Catalog=master;Integrated
Security=True


una alternativa a pooling=false que probe y me dio error es antes de
ejecutar el restore desde master ejecutar lo siguiente:

string consulta = "Alter Database "+nombreBD+" set SINGLE_USER With
ROLLBACK IMMEDIATE Alter Database "+nombreBD+" set MULTI_USER";

pero me da error en la 1º pagina que cargue luego, en las siguientes
ya no y tampoco si vuelvo a la 1º que cargue:

Error en el nivel de transporte al enviar la solicitud al servidor.
(provider: Proveedor de memoria compartida, error: 0 - No hay ningún
proceso en el otro extremo de la canalización.)

espero sabios consejos de los gurus del sql server ;)

Preguntas similare

Leer las respuestas

#1 Maxi
19/12/2007 - 14:11 | Informe spam
Hola, usted debe CERRAR la conexion, esta usted haciendo eso? ya Gux le ha
comentado como hacerlo en otro hilo


-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
escribió en el mensaje
news:
me gustaria saber si alguien conoce una alternativa a pooling=false
para hacer un backup y restore y no tener el problema de las
conexiones abiertas.

para que me funcione todo con pooling=false, uso:

desde la BD de la cual quiero hacer el backup, hago:

string consulta = "BACKUP DATABASE [" + nombreBD + "] TO DISK='" +
directorioBackup + nombreBackup + "' WITH INIT";

desde la BD master hago el restore:

string consulta = "RESTORE DATABASE [" + nombreBD + "] FROM DISK='" +
directorioBackup + nombreBackup + "' WITH REPLACE";

las cadenas de conexion son:

Data Source=MAKINITA\SQLSERVER;pooling=false;Initial
Catalog=nombreBD;Integrated Security=True

Data Source=MAKINITA\SQLSERVER;Initial Catalog=master;Integrated
Security=True


una alternativa a pooling=false que probe y me dio error es antes de
ejecutar el restore desde master ejecutar lo siguiente:

string consulta = "Alter Database "+nombreBD+" set SINGLE_USER With
ROLLBACK IMMEDIATE Alter Database "+nombreBD+" set MULTI_USER";

pero me da error en la 1º pagina que cargue luego, en las siguientes
ya no y tampoco si vuelvo a la 1º que cargue:

Error en el nivel de transporte al enviar la solicitud al servidor.
(provider: Proveedor de memoria compartida, error: 0 - No hay ningún
proceso en el otro extremo de la canalización.)

espero sabios consejos de los gurus del sql server ;)
Respuesta Responder a este mensaje
#2 el.sarda
19/12/2007 - 16:12 | Informe spam
On 19 dic, 14:11, "Maxi" wrote:
Hola, usted debe CERRAR la conexion, esta usted haciendo eso? ya Gux le ha
comentado como hacerlo en otro hilo


-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
escribió en el mensajenews:
me gustaria saber si alguien conoce una alternativa a pooling=false
para hacer un backup y restore y no tener el problema de las
conexiones abiertas.

para que me funcione todo con pooling=false, uso:

desde la BD de la cual quiero hacer el backup, hago:

string consulta = "BACKUP DATABASE [" + nombreBD + "] TO DISK='" +
directorioBackup + nombreBackup + "' WITH INIT";

desde la BD master hago el restore:

string consulta = "RESTORE DATABASE [" + nombreBD + "] FROM DISK='" +
directorioBackup + nombreBackup + "' WITH REPLACE";

las cadenas de conexion son:

Data Source=MAKINITA\SQLSERVER;pooling=false;Initial
Catalog=nombreBD;Integrated Security=True

Data Source=MAKINITA\SQLSERVER;Initial Catalog=master;Integrated
Security=True


una alternativa a pooling=false que probe y me dio error es antes de
ejecutar el restore desde master ejecutar lo siguiente:

string consulta = "Alter Database "+nombreBD+" set SINGLE_USER With
ROLLBACK IMMEDIATE Alter Database "+nombreBD+" set MULTI_USER";

pero me da error en la 1º pagina que cargue luego, en las siguientes
ya no y tampoco si vuelvo a la 1º que cargue:

Error en el nivel de transporte al enviar la solicitud al servidor.
(provider: Proveedor de memoria compartida, error: 0 - No hay ningún
proceso en el otro extremo de la canalización.)

espero sabios consejos de los gurus del sql server ;)




si las conexiones estan cerradas todas, tanto con close() como don
dispose(), el problema es que no se cierran realmente sino que van al
pool de conexiones y para sql server es como si siguieran abiertas
Respuesta Responder a este mensaje
#3 Gux (MVP)
19/12/2007 - 17:06 | Informe spam
En .NET el pool de conexiones borra una conexión cuando ha expirado su tiempo
de vida (o si se detecta que la conexión se ha perdido). Periódicamente el
pool de conexiones revisa el pool en busca de conexiones a eliminar. Esto
debería despreocupar a la applicación, si los vientos son propicios :-)

Usted puede usar Pooling='true' en su string de conexion pero creo que es
mejor idea jugar con el parámetro Connection Lifetime.

De todas formas es un tema de programación .NET, mi mejor recomendación es
que consulte en los foros de programación.


Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"" wrote:

On 19 dic, 14:11, "Maxi" wrote:
> Hola, usted debe CERRAR la conexion, esta usted haciendo eso? ya Gux le ha
> comentado como hacerlo en otro hilo
>
>
> -
> Microsoft M.V.P en SQLServer
> SQLTotal Consulting - Servicios en SQLServer
> Email:
> escribió en el mensajenews:
> me gustaria saber si alguien conoce una alternativa a pooling=false
> para hacer un backup y restore y no tener el problema de las
> conexiones abiertas.
>
> para que me funcione todo con pooling=false, uso:
>
> desde la BD de la cual quiero hacer el backup, hago:
>
> string consulta = "BACKUP DATABASE [" + nombreBD + "] TO DISK='" +
> directorioBackup + nombreBackup + "' WITH INIT";
>
> desde la BD master hago el restore:
>
> string consulta = "RESTORE DATABASE [" + nombreBD + "] FROM DISK='" +
> directorioBackup + nombreBackup + "' WITH REPLACE";
>
> las cadenas de conexion son:
>
> Data Source=MAKINITA\SQLSERVER;pooling=false;Initial
> Catalog=nombreBD;Integrated Security=True
>
> Data Source=MAKINITA\SQLSERVER;Initial Catalog=master;Integrated
> Security=True
>
>
> una alternativa a pooling=false que probe y me dio error es antes de
> ejecutar el restore desde master ejecutar lo siguiente:
>
> string consulta = "Alter Database "+nombreBD+" set SINGLE_USER With
> ROLLBACK IMMEDIATE Alter Database "+nombreBD+" set MULTI_USER";
>
> pero me da error en la 1º pagina que cargue luego, en las siguientes
> ya no y tampoco si vuelvo a la 1º que cargue:
>
> Error en el nivel de transporte al enviar la solicitud al servidor.
> (provider: Proveedor de memoria compartida, error: 0 - No hay ningún
> proceso en el otro extremo de la canalización.)
>
> espero sabios consejos de los gurus del sql server ;)


si las conexiones estan cerradas todas, tanto con close() como don
dispose(), el problema es que no se cierran realmente sino que van al
pool de conexiones y para sql server es como si siguieran abiertas

Respuesta Responder a este mensaje
#4 el.sarda
20/12/2007 - 11:33 | Informe spam
On 19 dic, 17:06, Gux (MVP) wrote:
En .NET el pool de conexiones borra una conexión cuando ha expirado su tiempo
de vida (o si se detecta que la conexión se ha perdido). Periódicamente el
pool de conexiones revisa el pool en busca de conexiones a eliminar. Esto
debería despreocupar a la applicación, si los vientos son propicios :-)

Usted puede usar Pooling='true' en su string de conexion pero creo que es
mejor idea jugar con el parámetro Connection Lifetime.

De todas formas es un tema de programación .NET, mi mejor recomendación es
que consulte en los foros de programación.

Gustavo Larriera, Microsoft MVPhttps://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.

"" wrote:
> On 19 dic, 14:11, "Maxi" wrote:
> > Hola, usted debe CERRAR la conexion, esta usted haciendo eso? ya Gux le ha
> > comentado como hacerlo en otro hilo


> > -
> > Microsoft M.V.P en SQLServer
> > SQLTotal Consulting - Servicios en SQLServer
> > Email:
> > escribió en el mensajenews:
> > me gustaria saber si alguien conoce una alternativa a pooling=false
> > para hacer un backup y restore y no tener el problema de las
> > conexiones abiertas.

> > para que me funcione todo con pooling=false, uso:

> > desde la BD de la cual quiero hacer el backup, hago:

> > string consulta = "BACKUP DATABASE [" + nombreBD + "] TO DISK='" +
> > directorioBackup + nombreBackup + "' WITH INIT";

> > desde la BD master hago el restore:

> > string consulta = "RESTORE DATABASE [" + nombreBD + "] FROM DISK='" +
> > directorioBackup + nombreBackup + "' WITH REPLACE";

> > las cadenas de conexion son:

> > Data Source=MAKINITA\SQLSERVER;pooling=false;Initial
> > Catalog=nombreBD;Integrated Security=True

> > Data Source=MAKINITA\SQLSERVER;Initial Catalog=master;Integrated
> > Security=True


> > una alternativa a pooling=false que probe y me dio error es antes de
> > ejecutar el restore desde master ejecutar lo siguiente:

> > string consulta = "Alter Database "+nombreBD+" set SINGLE_USER With
> > ROLLBACK IMMEDIATE Alter Database "+nombreBD+" set MULTI_USER";

> > pero me da error en la 1º pagina que cargue luego, en las siguientes
> > ya no y tampoco si vuelvo a la 1º que cargue:

> > Error en el nivel de transporte al enviar la solicitud al servidor.
> > (provider: Proveedor de memoria compartida, error: 0 - No hay ningún
> > proceso en el otro extremo de la canalización.)

> > espero sabios consejos de los gurus del sql server ;)

> si las conexiones estan cerradas todas, tanto con close() como don
> dispose(), el problema es que no se cierran realmente sino que van al
> pool de conexiones y para sql server es como si siguieran abiertas



Connection Lifetime que indica el tiempo de vida la conexion? pq si es
asi deberia ser lo mismo un lifetime=0 que pooling=false
Respuesta Responder a este mensaje
#5 Gux (MVP)
20/12/2007 - 16:09 | Informe spam
Hola,

"" wrote:


Connection Lifetime que indica el tiempo de vida la conexion? pq si es
asi deberia ser lo mismo un lifetime=0 que pooling=false




La forma en que se relacionan ambos parámetros es similar a esto:

Cuando sucede un SqlConnection.Close se revisa si el tiempo en que la
conexión estuvo abierta es mayor que Connection Lifetime. Si es verdadero, la
conexión se elimina totalmente, sino la conexión es devuelta al pool de
conexiones.

Lea en sus manuales de ADO.NET los detalles de cada parámetro o consulte a
los foros de programación. También hay una breve aunque clara explicación acá:

Connection Pooling in ADO.NET Applications
http://www.datadirect.com/developer.../index.ssp

Saludos
~gux
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida