RE: [pgsql-es-ayuda] Cerrar conexión activa con Npgsql

From: "Conrado Blasetti" <conrado(at)mapfre(dot)com(dot)ar>
To: "Fernando Hevia" <fhevia(at)ip-tel(dot)com(dot)ar>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: [pgsql-es-ayuda] Cerrar conexión activa con Npgsql
Date: 2009-03-02 11:10:15
Message-ID: 76A99F19229DC440909CF1B905F8012C07A73671@sar001998.Mapfre.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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:fhevia(at)ip-tel(dot)com(dot)ar]
Enviado el: Viernes, 27 de Febrero de 2009 05:26 p.m.
Para: Conrado Blasetti; pgsql-es-ayuda(at)postgresql(dot)org
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.

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Fabio Arias 2009-03-02 14:16:02 plPgSQL - Retornar un Cursor
Previous Message Hugo . 2009-03-02 10:24:18 Aislar bases de datos