OK, that's probably what's going on. I know I should close Statements
and Connections and do normally but I'm fairly certain I've some out
there dangling. I didn't know you had to close ResultSets, however.
Glad to know that.
Thanks,
Jim.
Paul wrote:
>
> Docs indicate that leaving a stmt or rs object open can cause memory leaks.
> Found the following in the tomcat docs somewhere, i think:
>
> Here is an example of properly written code to use a db connection obtained
> from a connection pool:
>
> Connection conn = null;
> Statement stmt = null; // Or PreparedStatement if needed
> ResultSet rs = null;
> try {
> conn = ... get connection from connection pool ...
> stmt = conn.createStatement("select ...");
> rs = stmt.executeQuery();
> ... iterate through the result set ...
> rs.close();
> rs = null;
> stmt.close();
> stmt = null;
> conn.close(); // Return to connection pool
> conn = null; // Make sure we don't close it twice
> } catch (SQLException e) {
> ... deal with errors ...
> } finally {
> // Always make sure result sets and statements are closed,
> // and the connection is returned to the pool
> if (rs != null) {
> try { rs.close(); } catch (SQLException e) { ; }
> rs = null;
> }
> if (stmt != null) {
> try { stmt.close(); } catch (SQLException e) { ; }
> stmt = null;
> }
> if (conn != null) {
> try { conn.close(); } catch (SQLException e) { ; }
> conn = null;
> }
> }
>
> ----- Original Message -----
> From: "Jim Lynch" <[EMAIL PROTECTED]>
> To: "tomcat" <[EMAIL PROTECTED]>
> Sent: Wednesday, September 03, 2003 12:56 PM
> Subject: Memory leaks?
>
> > I seemed to have read that java/tomcat isn't supposed to have memory
> > leaks, but something seems to be running me out of memory and I don't
> > know what.
> >
> > After a number of edit/undeploy/compile/deploy iterations I get the
> > following:
> >
> > javax.servlet.ServletException: Servlet execution threw an exception
> > at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
> FilterChain.java:269)
> > at
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
> ain.java:193)
> >
> > (Big snip)
> >
> >
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
> ction(Http11Protocol.java:392)
> > at
> > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
> > at
> >
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
> a:619)
> > at java.lang.Thread.run(Thread.java:536)
> >
> > root cause
> >
> > java.lang.OutOfMemoryError
> >
> > I'm running tomcat 4.1.24 on Linux with Apache 1.something. Java
> > 1.4.1_02.
> >
> > So where do I start looking for the problem? If I forget to close
> > Statements would that cause the problem?
> >
> > Thanks,
> > Jim.
> >
> > ---------------------------------------------------------------------
> > 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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]