I thought that closing the connection was unnecessary when using a
connection pool. I was under the impression that one would just close
the context, which would return the connectin to the connection pool.
Is this not the case?
--- "Kalra, Ashwani" <ashwani.kalra@(protected):
>
> Where are you closing the connection?
>
>
> -----Original Message-----
> From: Mon Cab [mailto:futon33@(protected)]
> Sent: Thursday, March 01, 2007 12:23 PM
> To: Struts User Group
> Subject: Connection, pool exhausted error
>
>
>
> I am getting a connection, pool exhausted error, in the action class
> below.
> The error happens exactly after the hundredth connection, even though
> I
> have closed all my statements, result sets and contexts. (I know
> that
> one would not normally do db access in an Action class, however, I'm
> implementing a quick and dirty presence detection for an external
> service, and dont need to worry about elegance.)
>
>
>
> [http-8080-Processor23] FATAL webapp.WEBCHAT_MessengerPresenceAction
> -
>
org.apache.commons.dbcp.SQLNestedException: Cannot get a connection,
> pool exhausted
> 2007-02-28 22:07:35,146
>
>
> package webapp;
>
>
> import webapp.utils.*;
> import javax.servlet.http.*;
> import org.apache.commons.logging.*;
> import org.apache.struts.action.*;
> import org.apache.struts.validator.*;
> import org.apache.struts.util.*;
>
> import javax.naming.*;
> import java.sql.*;
> import javax.sql.*;
> import java.util.*;
>
>
>
> public class WEBCHAT_MessengerPresenceAction extends Action
> {
>
>
> private static Log log =
> LogFactory.getLog(WEBCHAT_MessengerPresenceAction.class);
>
>
> public ActionForward execute( ActionMapping mapping,
>
> ActionForm form,
>
> HttpServletRequest req,
>
> HttpServletResponse res
> )
>
> throws Exception
> {
>
> DynaActionForm dynaForm = (DynaActionForm)form;
> MessageResources messageResources = getResources(req);
>
> Context initContext =null;
> Statement stmt =null;
> ResultSet rs =null;
>
>
> try
> {
>
> User user = null;
>
> String expired_sessions_sql
>
> = "DELETE FROM
> userplane_pending_wm WHERE "+
> "date_add(insertedAt, INTERVAL
> 15 MINUTE) < Now() "+
> "AND date_add(openedWindowAt,
> INTERVAL 5 MINUTE) < Now();";
>
> log.debug("expired_sessions_sql = "+
> expired_sessions_sql);
>
> initContext = new InitialContext();
> Context envContext =
> (Context)initContext.lookup("java:/comp/env");
> DataSource ds =
> (DataSource)envContext.lookup("jdbc/webdb");
> Connection con = ds.getConnection();
>
> stmt = con.createStatement();
> stmt.executeUpdate(expired_sessions_sql);
>
> boolean bFoundPendingWMs = false;
>
> if (user!=null)
> {
> String presence_sql
>
> = "UPDATE user SET
> lastTimeOnline = NOW() "+
> "WHERE user_id = "+
> user.user_id+";";
>
> log.debug("presence_sql = "+
> presence_sql);
>
> stmt.executeUpdate(presence_sql);
>
>
> String pending_chats_sql
>
> = "SELECT
> originatingUserID FROM userplane_pending_wm "+
> "WHERE destinationUserID
> = " + user.user_id + " "+
> "AND ( openedWindowAt IS
> NULL "+
> "OR
> date_add(openedWindowAt, INTERVAL 5 MINUTE) < Now() );";
>
> log.debug("pending_chats_sql = "+
> pending_chats_sql);
>
> rs =
> stmt.executeQuery(pending_chats_sql);
>
> if (rs.next())
> {
> rs.close();
> return
> mapping.findForward("pixle1Redirect");
> }
>
> else
> {
> rs.close();
> return
> mapping.findForward("pixle2Redirect");
> }
> }
>
>
> return null;
>
> }
>
> catch (Exception e)
> {
> log.fatal(e);
> return null;
> }
>
> finally
> {
> log.debug("in finally ");
>
> if( rs != null ) try { rs.close();
> log.debug("rs closed ");} catch(
> SQLException ignore ) { log.debug("rs not closed ");}
> if( stmt != null ) try { stmt.close();
> log.debug("stmt closed "); }
> catch( SQLException ignore ) { log.debug("stmt not closed ");}
> if( initContext != null ) try {
> initContext.close();
> log.debug("ctxt closed ");} catch( Exception ignore ) {
> log.debug("ctxt
> not closed ");}
> }
>
>
> }
>
>
> }
>
>
>
>
>
>
>
________________________________________________________________________
> ____________
> Need Mail bonding?
> Go to the Yahoo! Mail Q&A for great tips from Yahoo! Answers users.
> http://answers.yahoo.com/dir/?link=list&sid=396546091
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@(protected)
> For additional commands, e-mail: user-help@(protected)
>
>
=== message truncated ===
____________________________________________________________________________________
We won't tell. Get more on shows you hate to love
(and love to hate): Yahoo! TV's Guilty Pleasures list.
http://tv.yahoo.com/collections/265
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@(protected)
For additional commands, e-mail: user-help@(protected)