David
public static void closeconn (java.sql.Connection conn, java.sql.Statement s, java.sql.ResultSet rs) throws java.sql.SQLException { try { if (rs != null) { rs.close(); rs = null; } if (s != null) { s.close(); s = null; } if (conn != null) { conn.close(); conn = null; } } catch (java.sql.SQLException e) { closeconn(conn, s, rs, e); } }
and if THAT one throws an exception, it calls this:
public static void closeconn (java.sql.Connection conn, java.sql.Statement s, java.sql.ResultSet rs, java.sql.SQLException e) throws java.sql.SQLException {
if (rs != null) { try { rs.close(); rs = null; } catch (java.sql.SQLException rse) { e.setNextException (rse); rs = null; } } if (s != null) { try { s.close(); s = null; } catch (java.sql.SQLException se) { e.setNextException (se); s = null; } } if (conn != null) { try { conn.close(); conn = null; } catch (java.sql.SQLException ce) { e.setNextException (ce); conn = null; } } throw new java.sql.SQLException (e.getMessage(), e.getSQLState(), e.getErrorCode()); }
Crazy, perhaps, but it works quite well.
----- Original Message ----- From: "Mike Whittaker" <[EMAIL PROTECTED]> To: "Struts List" <[EMAIL PROTECTED]> Sent: Tuesday, June 03, 2003 10:14 AM Subject: [OT] data layer, try-catch-finally, connections
> I guess you've all been here, so can you answer this?
>
> you have do a 'finally' to ensure you close the connection/release it back
> to the pool.
>
> In the controller tier this is easy, get the connection in the
> Filter/RequestProcessor/Action when whatever returns you can finally close
> it.
>
> However this ties it to the controller layer. I want my connections
> instigated from the business layer. But because so many processes require
a
> connection I will have identical try,catch,finally block all over the
place.
>
> Any one got a solution to this?
>
> Thankyou
> --
> Mike W
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
_________________________________________________________________
Protect your PC - get McAfee.com VirusScan Online http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]