I'm running jBPM in version 3.2.2 and use MySQL as database.
If I try to store a variable which exceeds the max size for TEXT on the executioncontext
(65536), I get some exceptions:
anonymous wrote :
| 2009-09-23 15:44:50,045 ERROR [org.jbpm.job.executor.JobExecutorThread] problem
committing job execution transaction
| org.jbpm.JbpmException: problem closing services {persistence=org.jbpm.JbpmException:
couldn't commit JTA transaction}
| at org.jbpm.svc.Services.close(Services.java:245)
| at org.jbpm.JbpmContext.close(JbpmContext.java:139)
| at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:184)
| at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
| Caused by: org.jbpm.JbpmException: couldn't commit JTA transaction
| at
org.jbpm.persistence.jta.JtaDbPersistenceService.endJtaTransaction(JtaDbPersistenceService.java:78)
| at
org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:37)
| at org.jbpm.svc.Services.close(Services.java:225)
| ... 3 more
| Caused by: javax.transaction.RollbackException:
[com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted]
[com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't commit
because the transaction is in aborted state
| at
com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1401)
| at
com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:135)
| at
com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:87)
| at
org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:140)
| at
org.jbpm.persistence.jta.JtaDbPersistenceService.endJtaTransaction(JtaDbPersistenceService.java:76)
| ... 5 more
| Caused by: org.hibernate.exception.GenericJDBCException: could not update:
[org.jbpm.context.exe.variableinstance.StringInstance#400587]
| at
org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
| at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
| at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
| at
org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2425)
| at
org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2307)
| at
org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2607)
| at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:92)
| at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234)
| at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142)
| at
org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
| at
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
| at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
| at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
| at
org.hibernate.transaction.CacheSynchronization.beforeCompletion(CacheSynchronization.java:59)
| at
com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:114)
| at
com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:247)
| at
com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:86)
| at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:177)
| at
com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1389)
| ... 9 more
| Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for
column 'STRINGVALUE_' at row 1
| at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3489)
| at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
| at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
| at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
| at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
| at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
| at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2019)
| at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1937)
| at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1922)
| at
org.jboss.resource.adapter.jdbc.CachedPreparedStatement.executeUpdate(CachedPreparedStatement.java:95)
| at
org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:251)
| at
org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2407)
| ... 25 more
|
Fair enough - I asked for it.
My problem is that after these exceptions processing of all running instances stops. New
instances are left in start state.
The log is - a part from above - utterly empty.
I am able to create new instances, so the db is still responding.
I don't if it means anything but (as indicated by the stacktrace) the execution is
triggered from the JobExecutor.
Is this a known phenomenon/expected behaviour - and can I do anything to prevent it?
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4256838#...
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&a...