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
>
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 |