[opencms-dev] nested SQL Exception if connection pool

Christoph P. Kukulies kuku at physik.rwth-aachen.de
Fri Feb 29 18:16:03 CET 2008


Thanks. My initial concern was about the lifetime of a connection.
With your suggested solution a connection is made everytime the
page is invoked. Is it the way db apps are normally written?
Or can the connection be kept over the session?

--
Chris Christoph P. U. Kukulies kukulies (at) rwth-aachen.de


On Fri, Feb 29, 2008 at 05:48:31PM +0100, Jordi Mart? wrote:
> Wops, my bad:
> 
> Connection c;
> Statement st;
> ResultSet rs;
>  try {
>  	c=getSqlManager()......;
> 	st=c......
>  	rs=st....
>  	}
>  catch (Exception e) {
>  	e.printStackTrace();
>  	}
>  finally {
>  	rs.close();
> 	st.close();
>  	c.close();
>  	}
> 
> (this is an ugly example, you should do some exception checking, some
> logging, create managers and dao classes to do all this stuff, blablablabla,
> ok?).
> 
>   
>  
> JORDI MARTÍ 
> Skype id: jmarti.theinit
>  
>  
> 
> -----Mensaje original-----
> De: opencms-dev-bounces at opencms.org [mailto:opencms-dev-bounces at opencms.org]
> En nombre de Christoph P. Kukulies
> Enviado el: viernes, 29 de febrero de 2008 17:31
> Para: The OpenCms mailing list
> Asunto: Re: [opencms-dev] nested SQL Exception if connection pool
> 
> On Fri, Feb 29, 2008 at 04:46:00PM +0100, Jordi Mart? wrote:
> > Do you free statements and close connections?
> > 
> > try {
> > 	Connection c=getSqlManager()......;
> > 	ResultSet rs=c....
> > 	}
> > catch (Exception e) {
> > 	e.printStackTrace();
> > 	}
> > finally {
> > 	rs.close();
> > 	c.close();
> > 	}
> 
> I'm getting 
> An error occurred at line: 88 in the jsp file:
> /WEB-INF/jsp/offline/system/modules/org.yaml.frontend/templates/yamlmain.jsp
> rs cannot be resolved
> 85: e.printStackTrace();
> 86: }
> 87: finally {
> 88: rs.close();
> 89: c.close();
> 90: }
> 91: %>
> 
> An error occurred at line: 89 in the jsp file:
> /WEB-INF/jsp/offline/system/modules/org.yaml.frontend/templates/yamlmain.jsp
> c cannot be resolved
> 86: }
> 87: finally {
> 88: rs.close();
> 89: c.close();
> 90: }
> 91: %>
> 92: </div>
> 
> 
> Here is my template code:
> 
> <%@page import="org.opencms.jsp.*,org.opencms.file.*,java.util.*,java.sql.*"
> %>
> <%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms" %>
> <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
> <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
>        
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
> 
> <cms:template element="head" >
> <cms:include file="../elements/yamlhead" element="head"/>
> </cms:template>
>       <div id="main">
>         <div id="col1">
>           <div id="col1_content" class="clearfix">
>             <!-- add your content here -->
> <%
>          CmsJspActionElement jsp = new CmsJspActionElement(pageContext,
> request,response);
> 
>          String konto=request.getParameter("konto");
>          String tmp,item,desc,id;
>           
>          try { 
>              java.sql.Connection c =
>  
> org.opencms.main.OpenCms.getSqlManager().getConnection("application");
>             java.sql.Statement st = c.createStatement();
>            java.sql.ResultSet rs = st.executeQuery("select id,name from
> konten");
>             java.sql.ResultSetMetaData md = rs.getMetaData();
>             out.println("\n<ul>");
>             while(rs.next()) {
>                 out.println("\n<li>");
>                 for(int i=1; i<= md.getColumnCount(); i++) {
>                   item=rs.getString(i);
>                   tmp = "<a
> href=\"/opencms/opencms/sites/kuku/index.html?konto=" +item + "\" >"+
> item + "</a>";
> 
>                   if(tmp == null)
>                       tmp=" ";
>                   out.println(  tmp );
>                 }
>             out.println("</li>");
>            }
>             out.println("</ul>");
> 
> %>
> 
>           </div>
>         </div>
>         <div id="col2">
>           <div id="col2_content" class="clearfix">
>             <!-- add your content here -->
> 
> 
> 
>           </div>
>         </div>
>         <div id="col3">
>           <div id="col3_content" class="clearfix">
>             <!-- add your content here -->
> <%
>       
>       if(( id=request.getParameter("konto"))!=null){
>            rs = st.executeQuery("select * from buchung where
> konto="+id);
>           ;
>           out.println("\n<ul>");
>           md = rs.getMetaData();
>           while(rs.next()) {
>                 out.println("\n<li>");
>                 for(int i=1; i<= md.getColumnCount(); i++) {
>                   item=rs.getString(i);
>                   
>                   tmp =  item ;
>                if(tmp == null)
>                       tmp=" ";
>                   out.println(  tmp );
>                 }
>             out.println("</li>");
>           }
>          
>           out.println("</ul>");
>         } else { out.println("<h2>Set empty</h2>"); }
>         } catch (Exception e) {
>                e.printStackTrace();
>          }
> finally  {
>       rs.close();
>       c.close();
> }
> %>
>           </div>
>           <!-- IE Column Clearing -->
>           <div id="ie_clearing">   </div>
>         </div>
>       </div>
>     </div>
>   </div>
> </body>
> </html>
> 
> > 
> >    
> >  
> > JORDI MARTÍ 
> > Email: jmarti at theinit.com
> > Tlfno: 944.01.50.40 - Fax: 944.153.424
> > Móvil: 605.41.82.93
> > Skype ID: jmarti.theinit
> >  
> >  
> >  
> >  
> >  
> >  
> --
> Chris Christoph P. U. Kukulies kukulies (at) rwth-aachen.de



More information about the opencms-dev mailing list