Re: libpq - prevent automatic reconnect - Mailing list pgsql-general

From Tom Lane
Subject Re: libpq - prevent automatic reconnect
Date
Msg-id 10057.1354733782@sss.pgh.pa.us
Whole thread Raw
In response to libpq - prevent automatic reconnect  (icholy <ilia.choly@gmail.com>)
Responses Re: libpq - prevent automatic reconnect  (Chris Angelico <rosuav@gmail.com>)
List pgsql-general
icholy <ilia.choly@gmail.com> writes:
> libpq will automatically reconnect if the connection is dropped.

No it won't.  You'd have to do a PQreset() to make that happen.

>   auto con = PQconnectdb("info");    while (true) {    PQclear(PQexec(con,
> "SELECT * FROM foo LIMIT 1"));
> std::this_thread::sleep_for(std::chrono::seconds(1));    std::cout << "here
> " << i++ << std::endl;  }

This test case doesn't prove much of anything, since it's not examining
the PGresult to see if it was OK or an error.

> $ sudo ifconfig eth0 down
> output stops

I suspect this action isn't dropping the TCP connection.  It's only
equivalent to a momentary glitch in your network connectivity --- and
you'd be very unhappy if that caused TCP connections to go down, because
networks have glitches all the time.  Generally, the operating system
tries hard to prevent applications from even knowing that a glitch
happened.  (Connections will time out eventually if connectivity doesn't
come back, but typically such timeouts are many minutes.  Possibly
whatever your real complaint is could be addressed by twiddling the TCP
timeout parameters for the socket.)

            regards, tom lane


pgsql-general by date:

Previous
From: "James Cowell"
Date:
Subject: Re: Corrupt indexes on slave when using pg_bulkload on master
Next
From: akp geek
Date:
Subject: wal archiving question