Re: Connection exceptions

From: "Thomas Finneid" <tfinneid(at)fcon(dot)no>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Connection exceptions
Date: 2009-06-19 10:44:58
Message-ID: 54343.134.32.140.234.1245408298.squirrel@fcon.no
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc


(Damn web mail, sent it before I was finished)

Hi

Anybody got any best practices for how to deal with connection problems
in JDBC with DBCP?

I am working on a storage tier where the DAOs can encounter faulty
database connections, either closed or other-wise non functional
connections. The database connection is pooled with Commons DBCP and my
initial thought was to reinitialise or restart the pool, if there were any
problems.
But then I realised that the pool can test connections before giving it to
the application, so now I am moving into muddy waters, because I dont know
much about these details.

My original code is something like:

while (retry > 0) {
Connection con = ds.getConnection
if (con==null) {
dsFactory.restartDS();
retry--:
continue;
}
try {
dao1.execute();
dao2.execute();
} catch (SQLExceptions e) {
retry--:
continue;

if (retry == 0) {
throw new FaultRuntimeException("Can not complete operation", e)
}
con.close();
}

Not knowing the details of how the DBCP, DataSource or JDBC works in these
situations, this code is prone to problems.

I will continue to investigate, but any feedback about what to look at is
appreciated.

regards

thomas

>
> Hi
>
> Anybody got any best practices for how do I deal with connection problems
> in JDBC?
>
> I am working on a storage tier where the DAOs can encounter faulty
> database connections, either closed or other-wise non functional
> connections.
> The database connection is pooled with Commons DBCP, and my initial
> thought was to reinitialise or restart the pool, if there were any
> problems.
> But then I realised that the pool can test connections before giving it to
> the application, so now moving into muddy waters because I dont know much
> about these details.
>
> My original code is something like:
>
> while (retry > 0) {
> Connection con = ds.getConnection
> if (con==null) {
> dsFactory.restartDS();
> retry--:
> continue;
> }
> try {
> dao.execute();
> } catch (SQLExceptions e) {
>
> con.close();
> }
>
> Not knowing the details of how the DBCP or the DataSource works in these
> situations, make this code prone to problems.
>
> I will continue to investigate, but any feedback about what to look at is
> appreciated.
>
> regards
>
> thomas
>

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Craig Ringer 2009-06-20 03:39:15 Re: Connection exceptions
Previous Message Thomas Finneid 2009-06-19 10:37:15 Connection exceptions