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]