Hello all,
I am using hibernate (hibernate3.jar) with mysql 5.0 through a JDBC driver with the mysql connector version 5.0.3. I have a problem with the stability of the connection. When I try to access to my JAVA application the session crashes and I need to restart the tomcat of my Linux machine.
The hibernate.cfg.xml I have configured:
Code:
<property name="hibernate.connection.driver_class"> com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url"> jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true&characterEncoding=UTF-8</property>
<property name="hibernate.connection.username">XXX</property>
<property name="hibernate.connection.password">XXX</property>
<property name="dialect">com.myapp.hibernate.MySQLInnoDBDialectPlus</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.cache.use_query_cache">true</property>
I have a HibernateSession class that controls the hibernate session. The crash happens in the get Session method:
Code:
public Session getSession() throws HibernateException  {
   LOG.debug("getSession init");
   try {
      if(session == null) {
   LOG.debug("session null");
   session = factory.getSessionFactory().openSession();
   LOG.debug("session:" + session);
            
   if(session.isConnected()){
      LOG.debug("session is connected");
   } else {
      LOG.debug("session is not connected");
   }
            
   if(session.isDirty()){
      LOG.debug("session is dirty");
   } else {
      LOG.debug("session is not dirty");
   }
            
   if(session.isOpen()){
      LOG.debug("session is opened");
   } else {
      LOG.debug("session is not opened");
   }
            
   transaction = session.beginTransaction();   
        LOG.debug("transaction:" + transaction);
      }
   }catch(HibernateException h){
            LOG.debug("HibernateException checking the session:" + h.toString());
            h.printStackTrace();
   } catch(RuntimeException r){
            LOG.debug("RuntimeException checking the session:" + r.toString());
            r.printStackTrace();
   } catch (Exception e){
            LOG.debug("Exception checking the session:" + e.toString());
            e.printStackTrace();
   } catch(Throwable t) {
            LOG.debug("Throwable checking the session:" + t.toString());
            t.printStackTrace();
   }         
   return session;
}
The catalina.out log of the crash is:
Code:
2010-03-09 09:16:11,224   hibernate.HibernateSession.getSession - getSession init
2010-03-09 09:16:11,224   hibernate.HibernateSession.getSession - getSession init
2010-03-09 09:16:11,225   hibernate.HibernateSession.getSession - session null
2010-03-09 09:16:11,225   hibernate.HibernateSession.getSession - session null
2010-03-09 09:16:11,226   hibernate.HibernateSession.getSession - session:SessionImpl(PersistenceContext[entityKeys=[],collectionKeys=[]];ActionQueue[insertions=[] updates=[] deletions=[] collectionCreations=[] collectionRemovals=[] collectionUpdates=[]])
2010-03-09 09:16:11,226   hibernate.HibernateSession.getSession - session:SessionImpl(PersistenceContext[entityKeys=[],collectionKeys=[]];ActionQueue[insertions=[] updates=[] deletions=[] collectionCreations=[] collectionRemovals=[] collectionUpdates=[]])
2010-03-09 09:16:11,227   hibernate.HibernateSession.getSession - session is connected
2010-03-09 09:16:11,227   hibernate.HibernateSession.getSession - session is connected
2010-03-09 09:16:11,228   hibernate.HibernateSession.getSession - session is not dirty
2010-03-09 09:16:11,228   hibernate.HibernateSession.getSession - session is not dirty
2010-03-09 09:16:11,229   hibernate.HibernateSession.getSession - session is opened
2010-03-09 09:16:11,229   hibernate.HibernateSession.getSession - session is opened
2010-03-09 09:16:11,240   transaction.JDBCTransaction.begin - JDBC begin failed
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 
** BEGIN NESTED EXCEPTION ** 
java.io.EOFException
STACKTRACE:
java.io.EOFException
   at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913)
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2304)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2803)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
   at com.mysql.jdbc.Connection.execSQL(Connection.java:3118)
   at com.mysql.jdbc.Connection.setAutoCommit(Connection.java:5215)
   at org.apache.tomcat.dbcp.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:331)
   at org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setAutoCommit(PoolingDataSource.java:317)
   at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:63)
   at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1262)
   at com.myapp.hibernate.HibernateSession.getSession(HibernateSession.java:63)
   at com.myapp.hibernate.HibernateSession$$FastClassByCGLIB$$4773f100.invoke(<generated>)
   at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
   at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:698)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
   at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:116)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
   at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:643)
   at com.myapp.hibernate.HibernateSession$$EnhancerByCGLIB$$767fa717.getSession(<generated>)
   at com.myapp.AbstractAction.getSession(AbstractAction.java:111)
   at com.myapp.AbstractAction.execute(AbstractAction.java:56)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:364)
   at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:216)
   at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
   at com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)
   at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
   at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
   at com.myapp.sc.login.AuthenticationInterceptor.intercept(Unknown Source)
   at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
   at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
   at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
   at com.myapp.sc.comunes.interceptor.HibernateInterceptor.intercept(Unknown Source)
   at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
   at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
   at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
   at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
   at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
   at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:113)
   at com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:225)
   at com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:202)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
   at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:59)
   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
   at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
   at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
   at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
   at java.lang.Thread.run(Thread.java:595)
** END NESTED EXCEPTION **
Last packet sent to the server was 8 ms ago.
   at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2515)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2803)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
   at com.mysql.jdbc.Connection.execSQL(Connection.java:3118)
   at com.mysql.jdbc.Connection.setAutoCommit(Connection.java:5215)
   at org.apache.tomcat.dbcp.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:331)
   at org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setAutoCommit(PoolingDataSource.java:317)
   at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:63)
   at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1262)
   at com.myapp.hibernate.HibernateSession.getSession(HibernateSession.java:63)
   at com.myapp.hibernate.HibernateSession$$FastClassByCGLIB$$4773f100.invoke(<generated>)
   at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
   at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:698)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
   at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:116)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
   at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:643)
   at com.myapp.hibernate.HibernateSession$$EnhancerByCGLIB$$767fa717.getSession(<generated>)
   at com.myapp.AbstractAction.getSession(AbstractAction.java:111)
   at com.myapp.AbstractAction.execute(AbstractAction.java:56)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:364)
   at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:216)
   at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
   at com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)
   at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
   at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
   at com.myapp.sc.login.AuthenticationInterceptor.intercept(Unknown Source)
   at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
   at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
   at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
   at com.myapp.sc.comunes.interceptor.HibernateInterceptor.intercept(Unknown Source)
   at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
   at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
   at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
   at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
   at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
   at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:113)
   at com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:225)
   at com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:202)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
   at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:59)
   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
   at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
   at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
   at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
   at java.lang.Thread.run(Thread.java:595)
2010-03-09 09:16:11,263   hibernate.HibernateSession.getSession - HibernateException checking the transaction:org.hibernate.TransactionException: JDBC begin failed: 
2010-03-09 09:16:11,263   hibernate.HibernateSession.getSession - HibernateException checking the transaction:org.hibernate.TransactionException: JDBC begin failed: 
org.hibernate.TransactionException: JDBC begin failed: 
   at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:68)
   at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1262)
   at com.myapp.hibernate.HibernateSession.getSession(HibernateSession.java:63)
   at com.myapp.hibernate.HibernateSession$$FastClassByCGLIB$$4773f100.invoke(<generated>)
   at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
   at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:698)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
   at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:116)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
   at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:643)
   at com.myapp.hibernate.HibernateSession$$EnhancerByCGLIB$$767fa717.getSession(<generated>)
   at com.myapp.AbstractAction.getSession(AbstractAction.java:111)
   at com.myapp.AbstractAction.execute(AbstractAction.java:56)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at com.opensymphony.xwork.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:364)
   at com.opensymphony.xwork.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:216)
   at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:190)
   at com.opensymphony.xwork.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:115)
   at com.opensymphony.xwork.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
   at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
   at com.myapp.sc.login.AuthenticationInterceptor.intercept(Unknown Source)
   at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
   at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
   at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
   at com.myapp.sc.comunes.interceptor.HibernateInterceptor.intercept(Unknown Source)
   at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
   at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
   at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
   at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:31)
   at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:188)
   at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:113)
   at com.opensymphony.webwork.dispatcher.DispatcherUtils.serviceAction(DispatcherUtils.java:225)
   at com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:202)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
   at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:59)
   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
   at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
   at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
   at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
   at java.lang.Thread.run(Thread.java:595)
Caused by: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 
** BEGIN NESTED EXCEPTION ** 
Does anyone know how to avoid the hibernate exception?
Thanks in advance