We used to get this too and fixed it by making sure that any Statements and ResultSets we create are explicitly closed in finally blocks. It appears that these objects hold a cursor open while they live (one or the other or both, not too sure so I manage both).
What we now do in fact is manage them as rigorously as we do transactions and anywhere we create either, we immediately start a "try" block and ensure that the they are closed in the "finally" - this required a bit re-architecting to ensure that all the "close" calls could be done in the same block of code. Cheers Adrian > -----Original Message----- > From: Cosmin Cremarenco [SMTP:[EMAIL PROTECTED]] > Sent: 29 January 2003 12:37 > To: [EMAIL PROTECTED] > Subject: odd oracle error > > hello > at rare, random times we get the following error from our oracle 8i server > (8.1.7): > java.sql.SQLException: ORA-01000: maximum open cursors exceeded > > at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168) > at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208) > at oracle.jdbc.ttc7.Oopen.receive(Oopen.java:118) > at oracle.jdbc.ttc7.TTC7Protocol.open(TTC7Protocol.java:466) > at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:413) > at oracle.jdbc.driver.OracleStatement.<init>(OracleStatement.java:432) > at > oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedStatement. > ja > va:182) > at > oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedStatement. > ja > va:165) > at > oracle.jdbc.driver.OracleConnection.privatePrepareStatement(OracleConnecti > on > .java:608) > at > oracle.jdbc.driver.OracleConnection.prepareStatement(OracleConnection.java > :4 > 89) > at extranet.wb.WUpdate.selectUpdates(WUpdate.java:93) > at org.apache.jsp.whatisnew_jsp._jspService(whatisnew_jsp.java:1184) > at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java > :2 > 02) > at > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:289) > at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicati > on > FilterChain.java:247) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilter > Ch > ain.java:193) > at > geweb.control.filters.NoCacheFilterJsp.doFilter(NoCacheFilterJsp.java:43) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicati > on > FilterChain.java:213) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilter > Ch > ain.java:193) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve. > ja > va:260) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.inv > ok > eNext(StandardPipeline.java:643) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480 > ) > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve. > ja > va:191) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.inv > ok > eNext(StandardPipeline.java:643) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480 > ) > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2397) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:1 > 80 > ) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.inv > ok > eNext(StandardPipeline.java:643) > at > org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValv > e. > java:170) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.inv > ok > eNext(StandardPipeline.java:641) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:1 > 71 > ) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.inv > ok > eNext(StandardPipeline.java:641) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480 > ) > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.ja > va > :174) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.inv > ok > eNext(StandardPipeline.java:643) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480 > ) > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:458) > at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:551) > at java.lang.Thread.run(Thread.java:536) > > before anything I must say that we do close all our PreparedStatement, but > not the ResultSet. > AFAIK not closing the ResultSet shouldn't be a problem. We even had some > tests on this issue and they were successfull. > the maximum open cursors in our init.ora is 300 and we are using tomcat > 4.1.12 > > thanks, > cosmin > > __________________________________________________________________________ > _ > To unsubscribe, send email to [EMAIL PROTECTED] and include in the > body > of the message "signoff SERVLET-INTEREST". > > Archives: http://archives.java.sun.com/archives/servlet-interest.html > Resources: http://java.sun.com/products/servlet/external-resources.html > LISTSERV Help: http://www.lsoft.com/manuals/user/user.html -- It is the strict policy of Truworths that its e-mail facility and all e-mail communications emanating therefrom, should be utilised for business purposes only and should conform to high professional and business standards. Truworths has stipulated certain regulations in terms whereof strict guidelines relating to the use and content of e-mail communications are laid down. The use of the Truworths e-mail facility is not permitted for the distribution of chain letters or offensive mail of any nature whatsoever. Truworths hereby distances itself from and accepts no liability in respect of the unauthorised use of its e-mail facility or the sending of e-mail communications for other than strictly business purposes. Truworths furthermore disclaims liability for any unauthorised instruction for which permission was not granted. Truworths Limited accepts no liability for any consequences arising from or as a result of reliance on this message unless it is in respect of bona fide Truworths business for which proper authorisation has been granted. Any recipient of an unacceptable communication, a chain letter or offensive material of any nature is requested to notify the Truworths e-mail administrator ([EMAIL PROTECTED]) immediately in order that appropriate action can be taken against the individual concerned. ___________________________________________________________________________ To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff SERVLET-INTEREST". Archives: http://archives.java.sun.com/archives/servlet-interest.html Resources: http://java.sun.com/products/servlet/external-resources.html LISTSERV Help: http://www.lsoft.com/manuals/user/user.html