Fernando gracias por responder. Efectivamente, en la documentación de Npgsql 
figura lo que comentas.
Lo que hice fue dejar en Pooling=true como lo hace por defecto pero luego de 
hacer el close, llamo a cnn.ClearPool(), lo que hace justamente es limpiar el 
pool y funciona ok.

Muchas gracias.
Saludos,
Conrado

-----Mensaje original-----
De: Fernando Hevia [mailto:[email protected]] 
Enviado el: Viernes, 27 de Febrero de 2009 05:26 p.m.
Para: Conrado Blasetti; [email protected]
Asunto: RE: [pgsql-es-ayuda] Cerrar conexión activa con Npgsql

 

> -----Mensaje original-----
> De: Conrado Blasetti
> 
> Gente, buenos días.
> Tengo una app en .NET que se conecta a la bd con Npgsql. 
> Estoy probando el tema de conectarme y desconectarme. Un 
> menú, me conecta a la base, y otro menú desconecta.
> 
> Bien, cada vez que me conecto, en el pgAdmin Server status 
> veo al usuario conectado a la base, pero cuando hago el close 
> de la conection, no desaparece, o sea, sigue conectado.
> 

Estimo que tenés la opción de Pooling habilitada (es el default).
Esto hace que .Net mantenga la conexión abierta para ser reutilizada.
Lo que si me llama la atención es que despues de un close y un nuevo open te
aparezca una segunda conexión. En teoría debería reutilizar la primera.

Para deshabilitarlo agregá en tu conection string lo siguiente:
Pooling=false;

Ahora si, con un close la conexión debería efectivamente cerrarse.
(nuevamente en teoría)
Obviamente la recomendación es usar pooling en alguna capa, si no es a nivel
del driver que sea con una aplicación como pgpool2.

Otros parámetros para jugar son:
MinPoolSize (default 1) y MaxPoolSize (default 20).

Para mayor referencia:
http://npgsql.projects.postgresql.org/docs/manual/UserManual.html

Ojo, me parece recordar que las versiones 1.xx del npgsql ignoraban los
seteos de pooling. Asegurate de estar con la versión 2.xx.

Por cierto, te agradecería me comentes luego como te fue al jugar con estos
seteos y si hacen lo que dicen hacer.

Saludos,
Fernando.

--
TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo 
agradecerán

Responder a