On Thu, Jul 8, 2010 at 10:23, Fujii Masao <masao.fu...@gmail.com> wrote:
> On Thu, Jul 8, 2010 at 4:57 PM, Pavel Golub <pa...@microolap.com> wrote:
>> Sounds good for me. My customer proposed such a scenario:
>>
>> I have opened connection to database server (ver 8.4.3) through the
>> SSH tunnel. This tunnel is created by external program "PUTTY". My PC 
>> running Application
>> is connected to the ETH switch and server is connected to another port of 
>> the switch. So, when
>> I disconnect server from the switch, my PC is still online (I mean ETH port 
>> have the link). So, my
>> local side of the SSH tunnel is still alive, but remote side is down... So 
>> no connection to server
>> is possible at this moment. But in this scenario, when I do something like 
>> this:
>>
>> PQExec(...);
>>
>> Application stay locked on this command. Looks like client is still waiting 
>> answer from the server in
>> the case the TCP connection is still alive, even if Server is not accessible.
>>
>> The question is: Can this situation be solved with keealives?
>
> AFAIK, keepalive works only if there is no un-Acked data pending.
> If network goes down before sending query to server (i.e., calling
> PQexec), the ACK for the query doesn't arrive, so you cannot detect
> the disconnection via keepalive while waiting for the result of the
> query. OTOH, if network goes down after sending query, keepalive
> would make you detect the disconnection.

In this scenario, wouldn't it work if the *ssh connection* had
keepalives enabled though? Then that one should tear down, which in
turn would send a clear signal to libpq the connection is gone.


-- 
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to