From: | Emanuel Calvo Franco <postgres(dot)arg(at)gmail(dot)com> |
---|---|
To: | Jose Ramon Hermosilla Moreno <jrhermosilla(at)uci(dot)cu> |
Cc: | "Alejandro D(dot) Burne" <alejandro(dot)dburne(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: pgbouncer y conexiones rotas |
Date: | 2009-06-30 20:47:54 |
Message-ID: | f205bb120906301347p22348b18k218671951866058@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
> #include <iostream>
> #include <pqxx/pqxx>
> #include <vector>
>
> int main() {
> std::vector<pqxx::connection*> connections;
>
> for (unsigned int i = 0; i < 100; ++i) {
> try {
> connections.push_back(new pqxx::connection("host=localhost dbname=fcweb port=6432 user=postgres password=postgres"));
>
Con lo poco que averigué, creo que estas utilizando push_back de una
manera incorrecta.
http://blogninja.com/doc/libpqxx-dev/html/Reference/a00266.html#57b422363e6126946a742ab1814f90a3
Fijate que psh_back pertenece a tablewriter. En todo caso tendrías que
almacenar la conexión como una variable aparte, sin ponerla dentro de
esta función AFAIK.
Además estas utilizando push_back unicamente cuando nisiquiera tenés
abierta la conexión. Fijate en este ejemplo:
http://svn.openstreetmap.org/applications/utils/misc/api06_migrate/changeset_synth.cpp
> pqxx::work t(*connections[i], "DemoTransaction");
>
> t.commit();
> connections[i]->disconnect();
> delete connections[i];
> }
> catch(std::exception &e) {
> std::cout << e.what() << std::endl;
> }
> }
> return 0;
> }
>
>
> Para probar que pasaría si se cae la conexión lo que hacemos es parar el gestor de base de datos. Cuando ello sucede no ejecuta nada más luego de la línea:
>
> connections.push_back(new pqxx::connection("host=localhost dbname=fcweb port=6432 user=postgres password=postgres"));
>
> sino que se queda en un ciclo infinito en ella, pero nunca el programa recibe noticias de cual es el problema.
>
Creo que es porque los parametros que debe recibir esa función no son
los que le estas pasando.
>
> Se que no debemos conectarnos directamente con el usuario postgres. Cuando el servidor está corriendo funciona bien.
>
Para pruebas esta bien, luego no te olvides de cambiarlo.
--
Emanuel Calvo Franco
ArPUG [www.arpug.com.ar] / AOSUG Member
www.emanuelcalvofranco.com.ar
From | Date | Subject | |
---|---|---|---|
Next Message | Gabriel Hermes Colina Zambra | 2009-06-30 21:05:14 | Re: Funciones o Procedimientos escritos en Gambas. |
Previous Message | JOSE LUIS RODRIGUEZ | 2009-06-30 19:00:46 | Re: duda |