Hi,
I have a Spring +Hibernate +MySql applicatie. After it runs for 20 hours, when I try to run it I have the next error:
org.springframework.web.util.NestedServletExceptio n: Request processing failed; nested exception is org.hibernate.TransactionException: JDBC rollback failed
org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:487)
org.springframework.web.servlet.FrameworkServlet.d oGet(FrameworkServlet.java:430)
javax.servlet.http.HttpServlet.service(HttpServlet .java:690)
javax.servlet.http.HttpServlet.service(HttpServlet .java:803)
root cause
org.hibernate.TransactionException: JDBC rollback failed
org.hibernate.transaction.JDBCTransaction.rollback (JDBCTransaction.java:170)
business.VersionManager.getVersion(VersionManager. java:37)
web.Telefonbuch.handleRequest(Telefonbuch.java:99)
org.springframework.web.servlet.mvc.SimpleControll erHandlerAdapter.handle(SimpleControllerHandlerAda pter.java:48)
org.springframework.web.servlet.DispatcherServlet. doDispatch(DispatcherServlet.java:857)
org.springframework.web.servlet.DispatcherServlet. doService(DispatcherServlet.java:792)
org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:475)
org.springframework.web.servlet.FrameworkServlet.d oGet(FrameworkServlet.java:430)
javax.servlet.http.HttpServlet.service(HttpServlet .java:690)
javax.servlet.http.HttpServlet.service(HttpServlet .java:803)
root cause
com.mysql.jdbc.exceptions.MySQLNonTransientConnect ionException: Connection.close() has already been called. Invalid operation in this state.
com.mysql.jdbc.SQLError.createSQLException(SQLErro r.java:888)
com.mysql.jdbc.Connection.getMutex(Connection.java :3714)
com.mysql.jdbc.Connection.rollback(Connection.java :5186)
org.hibernate.transaction.JDBCTransaction.rollback AndResetAutoCommit(JDBCTransaction.java:183)
org.hibernate.transaction.JDBCTransaction.rollback (JDBCTransaction.java:162)
business.VersionManager.getVersion(VersionManager. java:37)
web.Telefonbuch.handleRequest(Telefonbuch.java:99)
org.springframework.web.servlet.mvc.SimpleControll erHandlerAdapter.handle(SimpleControllerHandlerAda pter.java:48)
org.springframework.web.servlet.DispatcherServlet. doDispatch(DispatcherServlet.java:857)
org.springframework.web.servlet.DispatcherServlet. doService(DispatcherServlet.java:792)
org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:475)
org.springframework.web.servlet.FrameworkServlet.d oGet(FrameworkServlet.java:430)
javax.servlet.http.HttpServlet.service(HttpServlet .java:690)
javax.servlet.http.HttpServlet.service(HttpServlet .java:803)
This is the hibernate.cfg.xml :
<property name="connection.url">jdbc:mysql://localhost/telefon</property>
<property name="connection.username">root</property>
<property name="connection.driver_class">com.mysql.jdbc.Driv er</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.password">*****</property>
<property name="current_session_context_class">thread</property>
<property name="hibernate.show_sql">true</property>
<!-- mapping files -->
<mapping resource="Version.hbm.xml" />
<mapping resource="Firmen.hbm.xml" />
<mapping resource="Telefon.hbm.xml" />
<mapping resource="Addr.hbm.xml" />
<mapping resource="Abt.hbm.xml" />
And here is my HibernateUtil class:
private static final SessionFactory sessionFactory;
static
{
try
{
// Create the SessionFactory from hibernate.cfg.xml
sessionFactory = new Configuration().configure()
.buildSessionFactory();
}
catch (Throwable ex)
{
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory()
{
return sessionFactory;
}
And here is where the exception appears:
Session session = HibernateUtil.getSessionFactory().getCurrentSessio n();
try {
session.beginTransaction();
List lista=session.createQuery("select DATE_FORMAT(lastupdate,'%e. %b %Y, %T') from Version where tablename = 'telefon'").list();
version=lista.get(0).toString();
session.getTransaction().commit();
} catch (HibernateException e) {
session.getTransaction().rollback();
System.out.println("A aparut o eroare la preluarea versiunii");
throw e;
}
Why do I have this error?
10x


Reply With Quote