connection timeout?

Lists: pgsql-jdbc
From: Antonini Roberto <Roberto(dot)Antonini(at)TILAB(dot)COM>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: connection timeout?
Date: 2004-12-03 16:03:35
Message-ID: 95F2F6B57A08F94FBAEE314B62B4CB1A4A6E3B@EXC01B.cselt.it
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

Hi all,

I executed following test in a classical scenario involving an
application on a PC connected to a DB Server where postgres is running:

* I disconnected network cable between PC and DB server
* I started the application on PC

The application remains blocked on

DriverManager::getConnection

method invocation.

Is it a timeout issue?

If so, how can I set this timeout?

Thanks in advance,

Roberto.

Gruppo Telecom Italia - Direzione e coordinamento di Telecom Italia S.p.A.

====================================================================
CONFIDENTIALITY NOTICE
This message and its attachments are addressed solely to the persons
above and may contain confidential information. If you have received
the message in error, be informed that any use of the content hereof
is prohibited. Please return it immediately to the sender and delete
the message. Should you have any questions, please send an e_mail to
MailAdmin(at)tilab(dot)com(dot) Thank you
====================================================================


From: Oliver Jowett <oliver(at)opencloud(dot)com>
To: Antonini Roberto <Roberto(dot)Antonini(at)tilab(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: connection timeout?
Date: 2004-12-03 20:50:56
Message-ID: 41B0D1B0.6040701@opencloud.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-jdbc

Antonini Roberto wrote:

> * I disconnected network cable between PC and DB server

> The application remains blocked on
> DriverManager::getConnection

I'd expect this to eventually time out, but it might take several
minutes. It depends on your TCP stack.

> Is it a timeout issue?

Yes.

> If so, how can I set this timeout?

Currently you can't, mostly because it hasn't been a big enough issue
for anyone to step forward and implement.

When implemented I'd expect it would be set via a URL parameter.

The Java socket primitives makes it quite hard to do timeouts on connect
anyway. Either you have to use NIO (doesn't exist until 1.4, would be an
invasive change) or Socket.connect() (doesn't exist until 1.4). So
you're out of luck under 1.3, and the driver will have to do conditional
compilation to use 1.4-specific code as it needs to build under 1.3.

-O