[ http://issues.apache.org/jira/browse/DERBY-210?page=comments#action_12369556 ]
Kathey Marsden commented on DERBY-210: -------------------------------------- I committed Deepa's patch5 Thank you so much Deepa for all your hard work on this issue and Bryan and John too. Date: Wed Mar 8 13:16:49 2006 New Revision: 384331 URL: http://svn.apache.org/viewcvs?rev=384331&view=rev I spoke with Deepa on IRC about the oustanding issues and possible Jira organization. The current oustanding issues seem to be: a) Prepared statements are not garbage collected on the server until the sections are reused. (This has to be fixed with a DRDA protocol Change) b) ResultSets are not garbage collected on the server until the section is reused. (This could be fixed with DERBY-1021) c) John found an issue with Statements not getting cleaned up at least in the server. Would this sound like a reasonable course of action? 1) Open a subtask of this issue with the work Deepa has done so far and close it. Something like: "Change the client driver to allow statements to be garbage-collected once they are dereferenced by an application" 2) Open a subtask of DERBY-210 for item a above. 3) Open an issue for "b" and make DERBY-1021 part of it or just close out DERBY-1021 4) Open a new issue for c > Network Server will leak prepared statements if not explicitly closed by the > user until the connection is closed > ---------------------------------------------------------------------------------------------------------------- > > Key: DERBY-210 > URL: http://issues.apache.org/jira/browse/DERBY-210 > Project: Derby > Type: Bug > Components: Network Client > Reporter: Kathey Marsden > Assignee: Deepa Remesh > Attachments: DOTS_ATCJ2_Derby-noPatch.png, DOTS_ATCJ2_Derby-withPatch.png, > StatementStress.java, derby-210-patch1.diff, derby-210-patch2.diff, > derby-210-patch2.status, derby-210-patch3.diff, derby-210-patch4-v2.diff, > derby-210-patch4-v2.status, derby-210-patch4-v3.diff, > derby-210-patch4-v3.status, derby-210-patch5-v1.diff, > derby-210-patch5-v1.status, derby-210-v2-draft.diff, > derby-210-v2-draft.status, derbyStress.java, runtimeinfo_DOTS-OOME.txt > > Network server will not garbage collect prepared statements that are not > explicitly closed by the user. So a loop like this will leak. > ... > PreparedStatement ps; > for (int i = 0 ; i < numPs; i++) > { > ps = conn.prepareStatement(selTabSql); > rs =ps.executeQuery(); > while (rs.next()) > { > rs.getString(1); > } > rs.close(); > // I'm a sloppy java programmer > //ps.close(); > } > > To reproduce run the attached program > java derbyStress > Both client and server will grow until the connection is closed. > > It is likely that the fix for this will have to be in the client. The client > does not send protocol to close the prepared statement, but rather reuses the > PKGNAMCSN on the PRPSQLSTT request once the prepared statement has been > closed. This is how the server knows to close the old statement and create a > new one. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira