DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=28251>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=28251 Returning dead database connections to BasicDataSource Summary: Returning dead database connections to BasicDataSource Product: Commons Version: 1.1 Final Platform: PC OS/Version: Windows NT/2K Status: NEW Severity: Normal Priority: Other Component: Dbcp AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] I have been using the BasicDataSource class to do connection pooling. I am using sybase version 12.0.0.8 with jconnect 5.5. The problem is if you get a connection from the pool and before it is handed back the physical connection dies then there is no way to hand that connection back to the pool so it remains as an active connection when it is actually dead. I would expect the following behaviour when handing back a connection:- - if the connection is ok, place in the pool - if the connection is not valid for any reason then it should be closed I think the problem lies in the following code in PoolableConnection class. If the isClosed() method returns true then an SQLExceptoin is thrown and then you can never return the connection to the pool, hence leaving an active connection that doesn;t actually exist anymore. public synchronized void close() throws SQLException { if(isClosed()) { throw new SQLException("Already closed."); } else { try { _pool.returnObject(this); } catch(SQLException e) { throw e; } catch(RuntimeException e) { throw e; } catch(Exception e) { throw new SQLNestedException("Cannot close connection (return to pool failed)", e); } } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
