That fixed it. It's working now. Thanks Kalra.
--- "Kalra, Ashwani" <[EMAIL PROTECTED]> wrote: > > No. Closing the Initial context will close the connection(not > database) > to the naming service from which you look up the datasource. > When you call ds.getConnection(), you actually get a proxy class > which > delegates your calls to actual vendor specific connection. When you > call > close on this, an event is fired which will actually return the > database > connection to the pool. > > > > -----Original Message----- > From: Mon Cab [mailto:[EMAIL PROTECTED] > Sent: Thursday, March 01, 2007 12:35 PM > To: Struts Users Mailing List > Subject: RE: Connection, pool exhausted error > > > 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" <[EMAIL PROTECTED]> wrote: > > > > > Where are you closing the connection? > > > > > > -----Original Message----- > > From: Mon Cab [mailto:[EMAIL 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 > === message truncated === ____________________________________________________________________________________ Don't get soaked. Take a quick peak at the forecast with the Yahoo! Search weather shortcut. http://tools.search.yahoo.com/shortcuts/#loc_weather --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]