Exception on scheduler launch
vladtepesch Dec 28, 2006 5:04 AMHello
First of all, sorry for my English, it's not my native language.
Now, the problem :
I'm using JBPM 3.1.2 with a JBoss 4.0 and I try to make a project on an Eclispe I haven't setup myself (so I don't really know wich plug in is installed).
When I try to laucnch the JBPM's Scheduler (using this code in my web.xml)
<servlet> <servlet-name>JbpmThreadsServlet</servlet-name> <servlet-class>org.jbpm.web.JbpmThreadsServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>JbpmThreadsServlet</servlet-name> <url-pattern>/threads</url-pattern> </servlet-mapping>
I receive exceptions on JBoss starting. (In fact, the exceptions appears in loop, so I think JBoss as start, and it's the scheduler which launch the Exception)
The exception threw is :
java.sql.SQLException: Can't call rollback when autocommit=true at com.mysql.jdbc.Connection.rollback(Connection.java:4729) at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.jdbcRollback(BaseWrapperManagedConnection.java:535) at org.jboss.resource.adapter.jdbc.WrappedConnection.rollback(WrappedConnection.java:460) at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:183) at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:162) at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:154) at org.jbpm.svc.Services.close(Services.java:211) at org.jbpm.JbpmContext.close(JbpmContext.java:139) at org.jbpm.msg.command.CommandExecutorThread.executeCommand(CommandExecutorThread.java:139) at org.jbpm.msg.command.CommandExecutorThread.run(CommandExecutorThread.java:79) 14:29:08,137 INFO [STDOUT] org.jbpm.persistence.JbpmPersistenceException: couldn't rollback hibernate session 14:29:08,137 INFO [STDOUT] at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:156) 14:29:08,137 INFO [STDOUT] at org.jbpm.svc.Services.close(Services.java:211) 14:29:08,137 INFO [STDOUT] at org.jbpm.JbpmContext.close(JbpmContext.java:139) 14:29:08,137 INFO [STDOUT] at org.jbpm.msg.command.CommandExecutorThread.executeCommand(CommandExecutorThread.java:139) 14:29:08,137 INFO [STDOUT] at org.jbpm.msg.command.CommandExecutorThread.run(CommandExecutorThread.java:79) 14:29:08,137 INFO [STDOUT] Caused by: org.hibernate.TransactionException: JDBC rollback failed 14:29:08,137 INFO [STDOUT] at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:170) 14:29:08,137 INFO [STDOUT] at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:154) 14:29:08,137 INFO [STDOUT] ... 4 more 14:29:08,137 INFO [STDOUT] Caused by: java.sql.SQLException: Can't call rollback when autocommit=true 14:29:08,137 INFO [STDOUT] at com.mysql.jdbc.Connection.rollback(Connection.java:4729) 14:29:08,137 INFO [STDOUT] at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.jdbcRollback(BaseWrapperManagedConnection.java:535) 14:29:08,137 INFO [STDOUT] at org.jboss.resource.adapter.jdbc.WrappedConnection.rollback(WrappedConnection.java:460) 14:29:08,137 INFO [STDOUT] at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:183) 14:29:08,137 INFO [STDOUT] at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:162) 14:29:08,137 INFO [STDOUT] ... 5 more 14:29:08,137 ERROR [Services] problem closing service 'persistence' org.jbpm.persistence.JbpmPersistenceException: couldn't rollback hibernate session at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:156) at org.jbpm.svc.Services.close(Services.java:211) at org.jbpm.JbpmContext.close(JbpmContext.java:139) at org.jbpm.msg.command.CommandExecutorThread.executeCommand(CommandExecutorThread.java:139) at org.jbpm.msg.command.CommandExecutorThread.run(CommandExecutorThread.java:79) Caused by: org.hibernate.TransactionException: JDBC rollback failed at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:170) at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:154) ... 4 more Caused by: java.sql.SQLException: Can't call rollback when autocommit=true at com.mysql.jdbc.Connection.rollback(Connection.java:4729) at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.jdbcRollback(BaseWrapperManagedConnection.java:535) at org.jboss.resource.adapter.jdbc.WrappedConnection.rollback(WrappedConnection.java:460) at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:183) at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:162) ... 5 more 14:29:08,137 ERROR [CommandExecutorThread] org.jbpm.JbpmException: problem closing services {persistence=org.jbpm.persistence.JbpmPersistenceException: couldn't rollback hibernate session} 14:29:08,137 ERROR [SchedulerSession] org.hibernate.MappingException: Named query not known: SchedulerSession.findTimersByDueDate 14:29:08,137 INFO [SchedulerThread] runtime exception while executing timers org.jbpm.JbpmException: couldn't find timers from the database at org.jbpm.db.SchedulerSession.findTimersByDueDate(SchedulerSession.java:88) at org.jbpm.scheduler.impl.SchedulerThread.executeTimers(SchedulerThread.java:106) at org.jbpm.scheduler.impl.SchedulerThread.run(SchedulerThread.java:70) Caused by: org.hibernate.MappingException: Named query not known: SchedulerSession.findTimersByDueDate at org.hibernate.impl.AbstractSessionImpl.getNamedQuery(AbstractSessionImpl.java:70) at org.hibernate.impl.SessionImpl.getNamedQuery(SessionImpl.java:1260) at org.jbpm.db.SchedulerSession.findTimersByDueDate(SchedulerSession.java:82) ... 2 more 14:29:13,129 ERROR [SchedulerSession] org.hibernate.MappingException: Named query not known: SchedulerSession.findTimersByDueDate 14:29:13,129 ERROR [JDBCTransaction] JDBC rollback failed java.sql.SQLException: Can't call rollback when autocommit=true at com.mysql.jdbc.Connection.rollback(Connection.java:4729) at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.jdbcRollback(BaseWrapperManagedConnection.java:535) at org.jboss.resource.adapter.jdbc.WrappedConnection.rollback(WrappedConnection.java:460) at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:183) at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:162) at org.jbpm.persistence.db.DbPersistenceService.close(DbPersistenceService.java:154) at org.jbpm.svc.Services.close(Services.java:211) at org.jbpm.JbpmContext.close(JbpmContext.java:139) at org.jbpm.msg.command.CommandExecutorThread.executeCommand(CommandExecutorThread.java:139) at org.jbpm.msg.command.CommandExecutorThread.run(CommandExecutorThread.java:79) 14:29:13,160 INFO [SchedulerThread] runtime exception while executing timers org.jbpm.JbpmException: couldn't find timers from the database at org.jbpm.db.SchedulerSession.findTimersByDueDate(SchedulerSession.java:88) at org.jbpm.scheduler.impl.SchedulerThread.executeTimers(SchedulerThread.java:106) at org.jbpm.scheduler.impl.SchedulerThread.run(SchedulerThread.java:70) Caused by: org.hibernate.MappingException: Named query not known: SchedulerSession.findTimersByDueDate at org.hibernate.impl.AbstractSessionImpl.getNamedQuery(AbstractSessionImpl.java:70) at org.hibernate.impl.SessionImpl.getNamedQuery(SessionImpl.java:1260) at org.jbpm.db.SchedulerSession.findTimersByDueDate(SchedulerSession.java:82) ... 2 more
I try to search about this on google and I find some patchs at :
-http://fisheye.jboss.org/viewrep/JBPM/jbpm.3/jpdl/jar/src/main/java/org/jbpm/persistence/db/DbPersistenceService.java?r1=1.4&r2=1.5
-http://jira.jboss.com/jira/secure/attachment/12312800/jbpm_session_already_closed_exception.patch
So, I patch my JBPM, rebuild the jar with ant but I always have this exceptions.
Did someone have a clue that can help me to find why this Exceptions is throwing ? (Or maybee just a method to set autocommit to false into a datasource file with the mysql driver ^^)
Thanks and goodbye