-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 14 posts ] 
Author Message
 Post subject: Could not execute query (Struts, Tomcat)
PostPosted: Tue Apr 06, 2004 6:56 am 
Newbie

Joined: Tue Apr 06, 2004 6:37 am
Posts: 17
Location: Oslo, Norway
I'm quite new to Hibernate and I'm experiencing some problems. When my webapp has been running overnight it can't access the database.

This is the code

I'm using Hibernate-2.1 in a Struts application running on Tomcat 4.1.29 and MySQL 4.0.15.

The code trying get data from the db:

Code:
public Tekst getTekst(Integer id) {
   Session session = null;
    try {
        session = net.esimulation.db.HibernateTilkobling.getInstance().getSession();
        return (Tekst) session.load(net.esimulation.db.tekst.Tekst.class,id);
    }

    catch (ObjectNotFoundException onfe) {
         return null;
    }
    catch (HibernateException e) {
        System.err.println("Hibernate Exception: " + e.getMessage());
        throw new RuntimeException(e);
    }

    finally {
       if (session != null) {
          try {
               session.close();
          }
          catch (HibernateException e) {
              System.err.println("Hibernate Exception: " + e.getMessage());
              throw new RuntimeException(e);
          }

     }
}



The method is called form my JSP page like this:
Code:
Tekst t = net.esimulation.db.tekst.TekstKlasse.getInstance().getTekst(new Integer(1));


HibernateTilkobling.java looks like:

Code:
package net.esimulation.db;

import net.sf.hibernate.HibernateException;
import net.sf.hibernate.MappingException;
import net.sf.hibernate.Session;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.cfg.Configuration;

public class HibernateTilkobling {

  private static HibernateTilkobling instance = null;
  private SessionFactory sessionFactory = null;

  private HibernateTilkobling() {
    // Establish SessionFactory for Hibernate
    try {
      sessionFactory = new Configuration().configure().buildSessionFactory();
    }
    catch (MappingException e) {

      System.err.println("Mapping Exception: " + e.getMessage());
      throw new RuntimeException(e);
    }
    catch (HibernateException e) {

      System.err.println("Hibernate Exception: " + e.getMessage());
      throw new RuntimeException(e);
    }
  }

  public static synchronized HibernateTilkobling getInstance() {
    if (instance == null) {
      instance = new HibernateTilkobling();
    }
    return instance;
  }

  public Session getSession() {
    try {
      Session s = sessionFactory.openSession();
      return s;
    }
    catch (HibernateException e) {
      System.err.println("Hibernate Exception: " + e.getMessage());
      throw new RuntimeException(e);
    }
  }

}



This works fine when the application is started, but when leaving the application running over night I'm getting these errors:


Code:
org.apache.jasper.JasperException: net.sf.hibernate.JDBCException: could not load: [net.esimulation.db.tekst.Tekst#1]
   at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
   at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
   at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.java:191)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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:2417)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
   at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.java:174)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)
   at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
   at java.lang.Thread.run(Thread.java:534)


root cause

java.lang.RuntimeException: net.sf.hibernate.JDBCException: could not load: [net.esimulation.db.tekst.Tekst#1]
   at net.esimulation.db.tekst.TekstKlasse.getTekst(TekstKlasse.java:47)
   at org.apache.jsp.hovedside_jsp._jspService(hovedside_jsp.java:88)
   at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
   at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210)
   at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
   at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.java:191)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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:2417)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
   at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.java:174)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)
   at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
   at java.lang.Thread.run(Thread.java:534)
Caused by: net.sf.hibernate.JDBCException: could not load: [net.esimulation.db.tekst.Tekst#1]
   at net.sf.hibernate.persister.EntityPersister.load(EntityPersister.java:422)
   at net.sf.hibernate.impl.SessionImpl.doLoad(SessionImpl.java:2081)
   at net.sf.hibernate.impl.SessionImpl.doLoadByClass(SessionImpl.java:1955)
   at net.sf.hibernate.impl.SessionImpl.load(SessionImpl.java:1884)
   at net.esimulation.db.tekst.TekstKlasse.getTekst(TekstKlasse.java:39)
   ... 36 more
Caused by: java.sql.SQLException: No operations allowed after connection closed.

Connection was closed due to the following exception:

** BEGIN NESTED EXCEPTION **

java.sql.SQLException
MESSAGE: Communication link failure: java.io.EOFException, underlying cause: null

** BEGIN NESTED EXCEPTION **

java.io.EOFException

STACKTRACE:

java.io.EOFException
   at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1319)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1463)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1854)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1109)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1203)
   at com.mysql.jdbc.Connection.execSQL(Connection.java:2090)
   at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1496)
   at net.sf.hibernate.impl.BatcherImpl.getResultSet(BatcherImpl.java:87)
   at net.sf.hibernate.loader.Loader.getResultSet(Loader.java:795)
   at net.sf.hibernate.loader.Loader.doQuery(Loader.java:189)
   at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:133)
   at net.sf.hibernate.loader.Loader.doList(Loader.java:950)
   at net.sf.hibernate.loader.Loader.list(Loader.java:941)
   at net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:834)
   at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1512)
   at net.sf.hibernate.impl.QueryImpl.list(QueryImpl.java:39)
   at net.esimulation.db.ferdighetstest.FerdighetKlasse.getSporsmalListe(FerdighetKlasse.java:160)
   at org.apache.jsp.sporsmal_jsp._jspService(sporsmal_jsp.java:84)
   at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
   at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210)
   at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
   at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
   at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
   at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:432)
   at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:356)
   at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
   at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:274)
   at org.apache.struts.action.RequestProcessor.internalModuleRelativeForward(RequestProcessor.java:1012)
   at org.apache.struts.tiles.TilesRequestProcessor.internalModuleRelativeForward(TilesRequestProcessor.java:345)
   at org.apache.struts.action.RequestProcessor.processForward(RequestProcessor.java:582)
   at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:260)
   at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
   at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.java:191)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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:2417)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
   at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.java:174)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)
   at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
   at java.lang.Thread.run(Thread.java:534)


** END NESTED EXCEPTION **



STACKTRACE:

java.sql.SQLException: Communication link failure: java.io.EOFException, underlying cause: null

** BEGIN NESTED EXCEPTION **

java.io.EOFException

STACKTRACE:

java.io.EOFException
   at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1319)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1463)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1854)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1109)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1203)
   at com.mysql.jdbc.Connection.execSQL(Connection.java:2090)
   at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1496)
   at net.sf.hibernate.impl.BatcherImpl.getResultSet(BatcherImpl.java:87)
   at net.sf.hibernate.loader.Loader.getResultSet(Loader.java:795)
   at net.sf.hibernate.loader.Loader.doQuery(Loader.java:189)
   at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:133)
   at net.sf.hibernate.loader.Loader.doList(Loader.java:950)
   at net.sf.hibernate.loader.Loader.list(Loader.java:941)
   at net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:834)
   at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1512)
   at net.sf.hibernate.impl.QueryImpl.list(QueryImpl.java:39)
   at net.esimulation.db.ferdighetstest.FerdighetKlasse.getSporsmalListe(FerdighetKlasse.java:160)
   at org.apache.jsp.sporsmal_jsp._jspService(sporsmal_jsp.java:84)
   at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
   at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210)
   at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
   at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
   at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
   at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:432)
   at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:356)
   at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
   at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:274)
   at org.apache.struts.action.RequestProcessor.internalModuleRelativeForward(RequestProcessor.java:1012)
   at org.apache.struts.tiles.TilesRequestProcessor.internalModuleRelativeForward(TilesRequestProcessor.java:345)
   at org.apache.struts.action.RequestProcessor.processForward(RequestProcessor.java:582)
   at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:260)
   at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
   at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.java:191)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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:2417)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
   at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.java:174)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)
   at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
   at java.lang.Thread.run(Thread.java:534)


** END NESTED EXCEPTION **


   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1638)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1854)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1109)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1203)
   at com.mysql.jdbc.Connection.execSQL(Connection.java:2090)
   at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1496)
   at net.sf.hibernate.impl.BatcherImpl.getResultSet(BatcherImpl.java:87)
   at net.sf.hibernate.loader.Loader.getResultSet(Loader.java:795)
   at net.sf.hibernate.loader.Loader.doQuery(Loader.java:189)
   at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:133)
   at net.sf.hibernate.loader.Loader.doList(Loader.java:950)
   at net.sf.hibernate.loader.Loader.list(Loader.java:941)
   at net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:834)
   at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1512)
   at net.sf.hibernate.impl.QueryImpl.list(QueryImpl.java:39)
   at net.esimulation.db.ferdighetstest.FerdighetKlasse.getSporsmalListe(FerdighetKlasse.java:160)
   at org.apache.jsp.sporsmal_jsp._jspService(sporsmal_jsp.java:84)
   at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
   at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210)
   at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
   at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
   at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
   at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:432)
   at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:356)
   at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
   at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:274)
   at org.apache.struts.action.RequestProcessor.internalModuleRelativeForward(RequestProcessor.java:1012)
   at org.apache.struts.tiles.TilesRequestProcessor.internalModuleRelativeForward(TilesRequestProcessor.java:345)
   at org.apache.struts.action.RequestProcessor.processForward(RequestProcessor.java:582)
   at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:260)
   at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
   at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.java:191)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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:2417)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
   at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.java:174)
   at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)
   at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
   at java.lang.Thread.run(Thread.java:534)


** END NESTED EXCEPTION **


   at com.mysql.jdbc.Connection.checkClosed(Connection.java:2225)
   at com.mysql.jdbc.Connection.prepareStatement(Connection.java:1313)
   at com.mysql.jdbc.Connection.prepareStatement(Connection.java:1293)
   at net.sf.hibernate.impl.BatcherImpl.getPreparedStatement(BatcherImpl.java:249)
   at net.sf.hibernate.impl.BatcherImpl.getPreparedStatement(BatcherImpl.java:223)
   at net.sf.hibernate.impl.BatcherImpl.prepareQueryStatement(BatcherImpl.java:65)
   at net.sf.hibernate.loader.Loader.prepareQueryStatement(Loader.java:704)
   at net.sf.hibernate.loader.Loader.doQuery(Loader.java:185)
   at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:133)
   at net.sf.hibernate.loader.Loader.loadEntity(Loader.java:831)
   at net.sf.hibernate.loader.Loader.loadEntity(Loader.java:851)
   at net.sf.hibernate.loader.EntityLoader.load(EntityLoader.java:57)
   at net.sf.hibernate.loader.EntityLoader.load(EntityLoader.java:49)
   at net.sf.hibernate.persister.EntityPersister.load(EntityPersister.java:419)
   ... 40 more




I've read lots of postings about Thread local, but I'm not sure if that solution is for me. I don't want to make it more complicated than nessecary. How can I solve this problem?


Top
 Profile  
 
 Post subject:
PostPosted: Tue Apr 06, 2004 8:17 am 
Newbie

Joined: Fri Nov 28, 2003 9:08 am
Posts: 19
Location: Brasil
Don


Top
 Profile  
 
 Post subject:
PostPosted: Tue Apr 06, 2004 8:47 am 
Newbie

Joined: Tue Apr 06, 2004 6:37 am
Posts: 17
Location: Oslo, Norway
Ok. I'll try that. But why do I loose the db connection after a while? Can anyone explain what is really happening?


Top
 Profile  
 
 Post subject:
PostPosted: Tue Apr 06, 2004 9:27 am 
Newbie

Joined: Fri Nov 28, 2003 9:08 am
Posts: 19
Location: Brasil
not sure

take a look at http://forum.hibernate.org/viewtopic.php?t=928593&highlight=memory+leak

Felipe


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 07, 2004 7:06 am 
Hibernate Team
Hibernate Team

Joined: Sun Sep 14, 2003 3:54 am
Posts: 7256
Location: Paris, France
Use a connection pool and set the recover connection property

_________________
Emmanuel


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 07, 2004 9:25 am 
Newbie

Joined: Tue Apr 06, 2004 6:37 am
Posts: 17
Location: Oslo, Norway
emmanuel wrote:
Use a connection pool and set the recover connection property


Does that mean I have to use connection pooling? Is this a built in thing in Hibernate or do I have to use Tomcat's connection pooling and get a connection via JNDI? I could really need some examples. And where do I set the recover connection property?


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 07, 2004 10:09 am 
Newbie

Joined: Tue Apr 06, 2004 6:37 am
Posts: 17
Location: Oslo, Norway
Never mind.. I think most of it is answered in http://www.hibernate.org/hib_docs/reference/html/quickstart.html


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 04, 2004 3:50 am 
Newbie

Joined: Tue Apr 06, 2004 6:37 am
Posts: 17
Location: Oslo, Norway
I have now applied the LocalThread pattern, but I'm still experiencing the same problem. My HibernateTilkobling class now looks like this:

Code:
import net.sf.hibernate.*;
import net.sf.hibernate.cfg.*;


public class HibernateTilkobling2 {

    private static final SessionFactory sessionFactory;

    static {
        try {
            // Create the SessionFactory
            sessionFactory = new Configuration().configure().buildSessionFactory();
        } catch (HibernateException ex) {
            throw new RuntimeException("Configuration problem: " + ex.getMessage(), ex);
        }
    }

    public static final ThreadLocal session = new ThreadLocal();

    public static Session getSession() throws HibernateException {
        Session s = (Session) session.get();
        // Open a new Session, if this Thread has none yet
        if (s == null) {
            s = sessionFactory.openSession();
            session.set(s);
        }
        return s;
    }

    public static void closeSession() throws HibernateException {
        Session s = (Session) session.get();
        session.set(null);
        if (s != null)
            s.close();
    }
}


To get a session I'm using this code:

Code:
  public Bruker getBruker(Integer id) {
      Session session = null;
    try {
      session = HibernateTilkobling2.getSession();
      return (Bruker) session.load(net.esimulation.db.auth.Bruker.class,id);
    }

    catch (ObjectNotFoundException onfe) {
      return null;
    }
    catch (HibernateException e) {

      System.err.println("Hibernate Exception" + e.getMessage());
      throw new RuntimeException(e);
    }

    finally {
      if (session != null) {
        try {
            HibernateTilkobling2.closeSession();
        }
        catch (HibernateException e) {
          System.err.println("Hibernate Exception" + e.getMessage());
          throw new RuntimeException(e);
        }

      }
    }

  } // End method getBruker()


Am I using it the right way or have I misinterprated the whole thing?? Any insight would be appreciated.


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 04, 2004 3:56 am 
Hibernate Team
Hibernate Team

Joined: Thu Dec 18, 2003 9:55 am
Posts: 1977
Location: France
your db can broke the connexion, if your connexion pooling is not configured to check the connexion, you're going into trouble


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 04, 2004 4:06 am 
Newbie

Joined: Tue Apr 06, 2004 6:37 am
Posts: 17
Location: Oslo, Norway
I'm using hibernate's built-in connection pooling.

I'm using the Hibernate plugin for Struts from http://www.hibernate.org/105.html and the following hibernate.cfg.xml. Is this not possible at all?

Code:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>
  <session-factory name="hibernateTilkobling">
  <property name="connection.url">jdbc:mysql://mago.iu.hio.no/esimulation</property>
  <property name="connection.driver_class">org.gjt.mm.mysql.Driver</property>
  <property name="connection.username">mysqlusr</property>
  <property name="connection.password">spoaz123</property>
  <property name="show_sql">true</property>
  <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 04, 2004 4:08 am 
Hibernate Team
Hibernate Team

Joined: Thu Dec 18, 2003 9:55 am
Posts: 1977
Location: France
hibernate built in connexion pooling is not for production.
You should switch to proxool, very easy to use and it is able to check the connexion


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 04, 2004 4:22 am 
Newbie

Joined: Tue Apr 06, 2004 6:37 am
Posts: 17
Location: Oslo, Norway
I know the built in connection pool is not for production, but should it break after just a few hours? I know other people have run successful whit the built in pool for at least several days.

I'm going to switch to tomcat's connection pool, but I would first like to know what is breaking thing in my case.


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 04, 2004 4:25 am 
Hibernate Team
Hibernate Team

Joined: Thu Dec 18, 2003 9:55 am
Posts: 1977
Location: France
i don't know, for me hibernate built in pool has no reason to break the connexion, it may come from the db, maybe network....

if you have batch running once a week, the db can close all its connexions.
If the db is restarted once a week for x reason, all connexions are broken...


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 04, 2004 4:25 am 
Hibernate Team
Hibernate Team

Joined: Mon Aug 25, 2003 9:11 pm
Posts: 4592
Location: Switzerland
Don't waste your time debugging with the builtin pool.

_________________
JAVA PERSISTENCE WITH HIBERNATE
http://jpwh.org
Get the book, training, and consulting for your Hibernate team.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 14 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.