Re: Connection state after network failure? - Mailing list pgsql-jdbc

From Kevin Birkett
Subject Re: Connection state after network failure?
Date
Msg-id 346FF8985107AA41AC92CEC80E21E6B5BBCB@phxx05.exchange.phxx
Whole thread Raw
In response to Connection state after network failure?  ("Kevin Birkett" <KBirkett@icudata.com>)
List pgsql-jdbc
Thanks for the advice guys.  We have a legacy app that was built on 7.2, and we are working to get away from it.  We had a few issues with some functions not being available in the newer versions, and I think we have them almost worked out.  I will try to get a newer version of the db installed and test out some of the suggestions mentioned.
 
Thanks again for the help.



From: Kris Jurka [mailto:books@ejurka.com]
Sent: Wed 2/14/2007 1:11 AM
To: Kevin Birkett
Cc: pgsql-jdbc@postgresql.org
Subject: Re: [JDBC] Connection state after network failure?



On Fri, 9 Feb 2007, Kevin Birkett wrote:

> I'm having a problem with our software which uses Postgres 7.2.3 and the
> JDBC driver associated with it.  In our code we only create one
> connection to the database, and then use that connection as needed for
> our DB interaction.  The problem comes in when I simulate a network
> failure (yank the cat5) after the app has started up and connected to
> the remote database.  I've tried an idea I found by searching the
> archives of this mailing list, but I haven't been able to get it to
> work.
>
> To me, if the connection loses its network connectivity, an exception
> should be thrown here, and then I can handle it.  However, what actually
> happens is the system locks up on the call to execute and it never
> throws and exception or a returns value (since the network is
> unavailable).  Am I missing something easy here?  All I want to do is to
> check whether or not the connection is valid and available.
>

TCP doesn't detect network failures immediately, hoping the network will
be restored.  If you wait long enough (on the order of an hour) you will
get an Exception.  You can adjust these settings globally via your OS
or using a more recent postgresql version with tcp_keepalives_* here:

http://www.postgresql.org/docs/8.2/static/runtime-config-connection.html

Also get off the 7.2 release before it eats your data.

Kris Jurka

pgsql-jdbc by date:

Previous
From: Jeffrey Cox
Date:
Subject: Re: getProcedureColumns
Next
From: Kris Jurka
Date:
Subject: Re: getProcedureColumns