1 2 Previous Next 15 Replies Latest reply on Jun 16, 2008 9:52 AM by kadlecp

    Multithreaded JobExecutor with ForEachForkActionHandler prob

      Hello,

      I would like to have multihreaded JobExecutor. I allowed more threads by increasing nbrOfThreads attribute in jbpm.cfg.xml. I use http://wiki.jboss.org/wiki/ForEachForkActionHandler

      I have simple process

      Start State>MyNodeActionHandler->ForEachForkActionHandler Node->ESB Service->Join->End State

      (ESB service is jms message consumer and jms message producer)

      When I have singlethreaded JobExecutor, everything works. If I have multitheaded JobExecutor I sometimes get

      17:05:06,365 ERROR [GraphElement] action threw exception: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect):
      [org.jbpm.graph.exe.Token#120]
      org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.graph.e
      xe.Token#120]
       at org.hibernate.persister.entity.AbstractEntityPersister.forceVersionIncrement(AbstractEntityPersister.java:1239)
       at org.hibernate.event.def.AbstractLockUpgradeEventListener.upgradeLock(AbstractLockUpgradeEventListener.java:82)
       at org.hibernate.event.def.DefaultLockEventListener.onLock(DefaultLockEventListener.java:64)
       at org.hibernate.impl.SessionImpl.fireLock(SessionImpl.java:584)
       at org.hibernate.impl.SessionImpl.lock(SessionImpl.java:576)
       at org.jbpm.graph.node.Join.execute(Join.java:116)
       at org.jbpm.graph.def.Node.enter(Node.java:319)
       at sun.reflect.GeneratedMethodAccessor224.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:173)
       at org.jbpm.graph.def.Node_$$_javassist_49.enter(Node_$$_javassist_49.java)
       at org.jbpm.graph.def.Transition.take(Transition.java:151)
       at org.jbpm.graph.def.Node.leave(Node.java:394)
       at sun.reflect.GeneratedMethodAccessor302.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:173)
       at org.jbpm.graph.def.Node_$$_javassist_49.leave(Node_$$_javassist_49.java)
       at org.jbpm.graph.exe.Token.signal(Token.java:195)
       at org.jbpm.graph.exe.Token.signal(Token.java:140)
       at sun.reflect.GeneratedMethodAccessor317.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:173)
       at org.jbpm.graph.exe.Token_$$_javassist_64.signal(Token_$$_javassist_64.java)
       at org.jbpm.command.SignalCommand.execute(SignalCommand.java:91)
       at org.jboss.soa.esb.services.jbpm.cmd.AsyncProcessSignal$AsyncSignalAction.execute(AsyncProcessSignal.java:287)
       at org.jbpm.graph.def.Action.execute(Action.java:122)
       at sun.reflect.GeneratedMethodAccessor225.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:173)
       at org.jbpm.graph.def.Action_$$_javassist_63.execute(Action_$$_javassist_63.java)
       at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:264)
       at sun.reflect.GeneratedMethodAccessor315.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:173)
       at org.jbpm.graph.def.Node_$$_javassist_49.executeAction(Node_$$_javassist_49.java)
       at org.jbpm.job.ExecuteActionJob.execute(ExecuteActionJob.java:32)
       at sun.reflect.GeneratedMethodAccessor313.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:173)
       at org.jbpm.job.Job_$$_javassist_54.execute(Job_$$_javassist_54.java)
       at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:164)
       at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
      17:05:06,567 ERROR [AbstractFlushingEventListener] Could not synchronize database state with session
      org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.graph.e
      xe.Token#120]
       at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1769)
       at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2412)
       at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2312)
       at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2612)
       at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:96)
       at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
       at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
       at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
       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)
       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)
       at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:37)
       at org.jbpm.svc.Services.close(Services.java:225)
       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)
      17:05:06,682 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator_2] TwoPhaseCoordinator.beforeCompletion - failed for com.arj
      una.ats.internal.jta.resources.arjunacore.SynchronizationImple@12030bc
      org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.graph.e
      xe.Token#120]
       at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1769)
       at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2412)
       at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2312)
       at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2612)
       at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:96)
       at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
       at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
       at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
       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)
       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)
       at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:37)
       at org.jbpm.svc.Services.close(Services.java:225)
       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)
      17:05:06,797 ERROR [Services] problem closing service 'persistence'
      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)
       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: javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.tr
      ansaction.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.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.j
      bpm.graph.exe.Token#120]
       at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1769)
       at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2412)
       at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2312)
       at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2612)
       at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:96)
       at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
       at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
       at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
       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
      17:05:06,925 ERROR [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.tr
      ansaction.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.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.j
      bpm.graph.exe.Token#120]
       at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1769)
       at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2412)
       at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2312)
       at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2612)
       at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:96)
       at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
       at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
       at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
       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
      17:05:07,057 ERROR [JobExecutorThread] exception in job executor thread. waiting 5000 milliseconds
      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.tr
      ansaction.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.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.j
      bpm.graph.exe.Token#120]
       at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1769)
       at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2412)
       at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2312)
       at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2612)
       at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:96)
       at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
       at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
       at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
       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
      
      


      This is my jbpm-ds.xml
      <?xml version="1.0" encoding="UTF-8"?>
      
      <datasources>
      
       <local-tx-datasource>
       <jndi-name>JbpmDS</jndi-name>
       <connection-url>jdbc:h2:${jboss.server.data.dir}${/}h2${/}jbpmDB;MVCC=TRUE</connection-url>
       <driver-class>org.h2.Driver</driver-class>
       <user-name>sa</user-name>
       <password/>
       <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
       <min-pool-size>5</min-pool-size>
       <max-pool-size>20</max-pool-size>
       <idle-timeout-minutes>0</idle-timeout-minutes>
       <prepared-statement-cache-size>32</prepared-statement-cache-size>
       <depends>jboss:service=h2,database=jbpmDB</depends>
       </local-tx-datasource>
       <mbean code="org.jboss.internal.soa.esb.dependencies.H2Database"
       name="jboss:service=h2,database=jbpmDB">
       <attribute name="Database">jbpmDB</attribute>
       </mbean>
      </datasources>
      


      Can I do something with that? I tried it with Oracle as well with the same result. I use jBPM 3.2.2.

      Thank you for help.
      Regards
      Pavel

        • 1. Re: Multithreaded JobExecutor with ForEachForkActionHandler
          kukeltje

          I assume you read all the forum entries and jira issues around this?

          • 2. Re: Multithreaded JobExecutor with ForEachForkActionHandler

            Yes, I've read. It seems to me that all JIRAs around this were closed with fixes available in version 3.2.2. I use 3.2.2 and still have problems.

            Regards
            Pavel

            • 3. Re: Multithreaded JobExecutor with ForEachForkActionHandler
              kukeltje

              hmm..... afaik, some are closed but fixed in CVS head (which will become 3.2.3 shortly) and others are not fixed yet, so I might be wrong. Could you point out which issues you think were related and already fixed in 3.2.2

              • 4. Re: Multithreaded JobExecutor with ForEachForkActionHandler

                in discussion http://www.jboss.com/index.html?module=bb&op=viewtopic&t=109636 Alex wrote


                well, next problem, on a join node all incoming branches try to update the parent token, which fails


                I think that that's my problem. This code in org.jbpm.graph.node.Join crashes when multiple threads are used in JobExecutor
                LockMode lockMode = LockMode.FORCE;
                 if (parentLockMode!=null) {
                 lockMode = LockMode.parse(parentLockMode);
                 }
                 log.debug("forcing version increment on parent token "+parentToken);
                 session.flush(); // here it sometimes crashes, receive StaleObjectStateException
                 session.lock(parentToken, lockMode); // here it sometimes crashes, StaleObjectStateException
                


                I tried to remove this code (I think I can see why this code is there) just to see if it's only problem. Unfortunately I received another exception related to org.hibernate.StaleObjectStateException
                16:27:08,826 ERROR [AbstractFlushingEventListener] Could not synchronize database state with session
                org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect):
                xe.Token#67]
                 at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1769)
                 at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2412)
                 at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2312)
                 at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2612)
                 at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:96)
                 at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
                 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
                 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
                 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)
                 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:91)
                 at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:61)
                 at org.jbpm.svc.Services.close(Services.java:223)
                 at org.jbpm.JbpmContext.close(JbpmContext.java:139)
                 at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:193)
                 at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
                16:27:08,938 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator_2] TwoPhaseCoordinator.beforeCompletion -
                una.ats.internal.jta.resources.arjunacore.SynchronizationImple@1726337
                org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect):
                xe.Token#67]
                 at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1769)
                 at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2412)
                 at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2312)
                 at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2612)
                 at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:96)
                 at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
                 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
                 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
                 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)
                 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:91)
                 at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:61)
                 at org.jbpm.svc.Services.close(Services.java:223)
                 at org.jbpm.JbpmContext.close(JbpmContext.java:139)
                 at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:193)
                 at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
                16:27:09,056 ERROR [Services] problem closing service 'persistence'
                org.jbpm.JbpmException: couldn't commit JTA transaction
                 at org.jbpm.persistence.jta.JtaDbPersistenceService.endJtaTransaction(JtaDbPersistenceService.java:93)
                 at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:61)
                 at org.jbpm.svc.Services.close(Services.java:223)
                 at org.jbpm.JbpmContext.close(JbpmContext.java:139)
                 at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:193)
                 at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
                Caused by: javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.a
                ansaction.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:91)
                 ... 5 more
                Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was
                bpm.graph.exe.Token#67]
                 at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1769)
                 at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2412)
                 at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2312)
                 at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2612)
                 at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:96)
                 at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
                 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
                 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
                 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
                16:27:09,195 ERROR [JobExecutorThread] exception in job executor thread. waiting 5000 milliseconds
                org.jbpm.JbpmException: couldn't commit JTA transaction
                 at org.jbpm.persistence.jta.JtaDbPersistenceService.endJtaTransaction(JtaDbPersistenceService.java:93)
                 at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:61)
                 at org.jbpm.svc.Services.close(Services.java:223)
                 at org.jbpm.JbpmContext.close(JbpmContext.java:139)
                 at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:193)
                 at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
                Caused by: javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.a
                ansaction.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:91)
                 ... 5 more
                Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was
                bpm.graph.exe.Token#67]
                 at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1769)
                 at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2412)
                 at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2312)
                 at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2612)
                 at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:96)
                 at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
                 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
                 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
                 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
                


                Related JIRA is "concurrent process execution fails"
                http://jira.jboss.com/jira/browse/JBPM-983

                I have read story about JIRA http://jira.jboss.com/jira/browse/JBPM-995, but I do not have problems with job acquirement.

                Thank you for comments
                Pavel

                • 5. Re: Multithreaded JobExecutor with ForEachForkActionHandler

                  I tried jBPM from CVS head as well with same result.

                  I use hsqldb.

                  • 6. Re: Multithreaded JobExecutor with ForEachForkActionHandler

                    I would not use hsqldb with any application that has forking and asynchronous activity, such as a node that blocks waiting for external input, or a node that explicitly has async="true" set.

                    You need a database that supports transactions and has isolation. I thought Tom put something in the docs about this, but I can't find it now.

                    • 7. Re: Multithreaded JobExecutor with ForEachForkActionHandler

                      Ok, I will try to test it on Oracle. If I encounter problems, I will let you know.

                      Regards
                      Pavel

                      • 8. Re: Multithreaded JobExecutor with ForEachForkActionHandler
                        kukeltje

                        can you try with a real database and use read_committed as isolation level? That is what is advised anyway.

                        • 9. Re: Multithreaded JobExecutor with ForEachForkActionHandler

                          Hello,

                          Oracle does not help. I received

                          16:35:49,036 ERROR [AbstractFlushingEventListener] Could not synchronize database state with session
                          org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.graph.e
                          xe.Token#2419]
                           at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1769)
                           at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2412)
                           at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2312)
                           at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2612)
                           at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:96)
                           at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
                           at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
                           at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
                           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)
                           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:91)
                           at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:61)
                           at org.jbpm.svc.Services.close(Services.java:223)
                           at org.jbpm.JbpmContext.close(JbpmContext.java:139)
                           at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:193)
                           at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
                          16:35:49,140 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator_2] TwoPhaseCoordinator.beforeCompletion - failed for com.arj
                          una.ats.internal.jta.resources.arjunacore.SynchronizationImple@13d4036
                          org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.graph.e
                          xe.Token#2419]
                           at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1769)
                           at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2412)
                           at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2312)
                           at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2612)
                           at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:96)
                           at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
                           at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
                           at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
                           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)
                           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:91)
                           at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:61)
                           at org.jbpm.svc.Services.close(Services.java:223)
                           at org.jbpm.JbpmContext.close(JbpmContext.java:139)
                           at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:193)
                           at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
                          16:35:49,257 ERROR [Services] problem closing service 'persistence'
                          org.jbpm.JbpmException: couldn't commit JTA transaction
                           at org.jbpm.persistence.jta.JtaDbPersistenceService.endJtaTransaction(JtaDbPersistenceService.java:93)
                           at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:61)
                           at org.jbpm.svc.Services.close(Services.java:223)
                           at org.jbpm.JbpmContext.close(JbpmContext.java:139)
                           at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:193)
                           at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
                          Caused by: javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.tr
                          ansaction.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:91)
                           ... 5 more
                          Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.j
                          bpm.graph.exe.Token#2419]
                           at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1769)
                           at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2412)
                           at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2312)
                           at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2612)
                           at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:96)
                           at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
                           at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
                           at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
                           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
                          16:35:49,431 ERROR [JobExecutorThread] exception in job executor thread. waiting 5000 milliseconds
                          org.jbpm.JbpmException: couldn't commit JTA transaction
                           at org.jbpm.persistence.jta.JtaDbPersistenceService.endJtaTransaction(JtaDbPersistenceService.java:93)
                           at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:61)
                           at org.jbpm.svc.Services.close(Services.java:223)
                           at org.jbpm.JbpmContext.close(JbpmContext.java:139)
                           at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:193)
                           at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
                          Caused by: javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.tr
                          ansaction.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:91)
                           ... 5 more
                          Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.j
                          bpm.graph.exe.Token#2419]
                           at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1769)
                           at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2412)
                           at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2312)
                           at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2612)
                           at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:96)
                           at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
                           at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
                           at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
                           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
                          16:35:50,060 ERROR [AbstractFlushingEventListener] Could not synchronize database state with session
                          org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.graph.e
                          xe.Token#2419]
                           at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1769)
                           at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2412)
                           at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2312)
                           at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2612)
                           at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:96)
                           at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
                           at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
                           at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
                           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)
                           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:91)
                           at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:61)
                           at org.jbpm.svc.Services.close(Services.java:223)
                           at org.jbpm.JbpmContext.close(JbpmContext.java:139)
                           at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:193)
                           at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
                          16:35:50,167 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator_2] TwoPhaseCoordinator.beforeCompletion - failed for com.arj
                          una.ats.internal.jta.resources.arjunacore.SynchronizationImple@bb88b8
                          org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.graph.e
                          xe.Token#2419]
                           at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1769)
                           at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2412)
                           at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2312)
                           at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2612)
                           at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:96)
                           at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
                           at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
                           at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
                           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)
                           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:91)
                           at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:61)
                           at org.jbpm.svc.Services.close(Services.java:223)
                           at org.jbpm.JbpmContext.close(JbpmContext.java:139)
                           at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:193)
                           at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
                          16:35:50,285 ERROR [Services] problem closing service 'persistence'
                          org.jbpm.JbpmException: couldn't commit JTA transaction
                           at org.jbpm.persistence.jta.JtaDbPersistenceService.endJtaTransaction(JtaDbPersistenceService.java:93)
                           at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:61)
                           at org.jbpm.svc.Services.close(Services.java:223)
                           at org.jbpm.JbpmContext.close(JbpmContext.java:139)
                           at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:193)
                           at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
                          Caused by: javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.tr
                          ansaction.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:91)
                           ... 5 more
                          Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.j
                          bpm.graph.exe.Token#2419]
                           at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1769)
                           at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2412)
                           at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2312)
                           at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2612)
                           at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:96)
                           at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
                           at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
                           at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
                           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
                          16:35:50,413 ERROR [JobExecutorThread] exception in job executor thread. waiting 5000 milliseconds
                          org.jbpm.JbpmException: couldn't commit JTA transaction
                           at org.jbpm.persistence.jta.JtaDbPersistenceService.endJtaTransaction(JtaDbPersistenceService.java:93)
                           at org.jbpm.persistence.jta.JtaDbPersistenceService.close(JtaDbPersistenceService.java:61)
                           at org.jbpm.svc.Services.close(Services.java:223)
                           at org.jbpm.JbpmContext.close(JbpmContext.java:139)
                           at org.jbpm.job.executor.JobExecutorThread.executeJob(JobExecutorThread.java:193)
                           at org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:64)
                          Caused by: javax.transaction.RollbackException: [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] [com.arjuna.ats.internal.jta.tr
                          ansaction.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:91)
                           ... 5 more
                          Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.j
                          bpm.graph.exe.Token#2419]
                           at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1769)
                           at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2412)
                           at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2312)
                           at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2612)
                           at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:96)
                           at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
                           at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
                           at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
                           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
                          
                          


                          I installed jbpm from current CVS HEAD. I use Oracle with transaction isolation READ_COMMITTED, I use TreeCache in jbpm's hibernate with isolation level REPEATABLE_READ... I am out of ideas what to try next......

                          Pavel

                          • 10. Re: Multithreaded JobExecutor with ForEachForkActionHandler

                            Pavel, look at hibernate config values for the following.
                            The ones with question-marks I can't help you with - I'm using local wrappers, and can't take time to look up generic solutions. Check the Hibernate docs, etc for these properties. I'm (obviously) on WebLogic - you'll need different values for other containers.

                            -Ed Staub

                            <!-- CMT transaction properties (begin) -->
                             <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
                             <!--property name="hibernate.transaction.manager_lookup_class">????????????????????????</property> -->
                             <!-- CMT transaction properties (end) -->
                            
                             <!-- JTA transaction properties (begin) ===
                             <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
                             <property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.WeblogicTransactionManagerLookup</property>
                             === JTA transaction properties (end) -->
                            
                             <!-- CMT transaction properties (begin) -->
                             <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
                             <!--property name="hibernate.transaction.manager_lookup_class">????????????????????</property> -->
                             <!-- CMT transaction properties (end) -->


                            • 11. Re: Multithreaded JobExecutor with ForEachForkActionHandler

                              JBoss has one transaction manager lookup class org.hibernate.transaction.JBossTransactionManagerLookup.

                               <property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
                              


                              and I tried set following possibilities for hibernate.transaction.factory_class

                              <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
                              

                              <property name="hibernate.transaction.factory_class">org.hibernate.transaction.CMTTransactionFactory</property>
                              

                              <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
                              


                              None worked correctly in my situation. JDBCTransactionFactory has strange behaviour. I was not able to deploy process from eclipse. When I start some existing process I got
                              18:22:37,266 ERROR [STDERR] 11.6.2008 18:22:37 com.sun.facelets.FaceletViewHandler handleRenderException
                              SEVERE: Error Rendering View[/sa/procins.xhtml]
                              java.lang.IllegalArgumentException
                               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 javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:1590)
                               at javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:1499)
                               at org.jboss.gravel.action.handler.AttributeHandler.apply(AttributeHandler.java:106)
                               at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
                               at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
                               at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
                               at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
                               at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
                               at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
                               at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
                               at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
                               at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
                               at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
                               at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
                               at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
                               at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
                               at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
                               at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
                               at com.sun.facelets.tag.ui.DefineHandler.apply(DefineHandler.java:58)
                               at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:128)
                               at com.sun.facelets.impl.DefaultFaceletContext$TemplateManager.apply(DefaultFaceletContext.java:306)
                               at com.sun.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:279)
                               at com.sun.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:68)
                               at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
                               at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49)
                               at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
                               at com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25)
                               at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248)
                               at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294)
                               at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273)
                               at com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:143)
                               at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:113)
                               at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49)
                               at com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25)
                               at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248)
                               at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294)
                               at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273)
                               at com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:143)
                               at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:113)
                               at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49)
                               at com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25)
                               at com.sun.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:95)
                               at com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:503)
                               at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:546)
                               at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:178)
                               at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
                               at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
                               at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
                               at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
                               at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                               at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
                               at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
                               at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
                               at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
                               at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                               at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
                               at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                               at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
                               at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
                               at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
                               at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
                               at java.lang.Thread.run(Thread.java:595)
                              18:22:37,766 WARN [lifecycle] executePhase(RENDER_RESPONSE 6,com.sun.faces.context.FacesContextImpl@604dd8) threw exception
                              java.lang.IllegalArgumentException
                               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 javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:1590)
                               at javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:1499)
                               at org.jboss.gravel.action.handler.AttributeHandler.apply(AttributeHandler.java:106)
                               at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
                               at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
                               at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
                               at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
                               at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
                               at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
                               at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
                               at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
                               at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
                               at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
                               at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
                               at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
                               at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
                               at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
                               at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
                               at com.sun.facelets.tag.ui.DefineHandler.apply(DefineHandler.java:58)
                               at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:128)
                               at com.sun.facelets.impl.DefaultFaceletContext$TemplateManager.apply(DefaultFaceletContext.java:306)
                               at com.sun.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:279)
                               at com.sun.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:68)
                               at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
                               at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49)
                               at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
                               at com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25)
                               at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248)
                               at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294)
                               at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273)
                               at com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:143)
                               at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:113)
                               at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49)
                               at com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25)
                               at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248)
                               at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294)
                               at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273)
                               at com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:143)
                               at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:113)
                               at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49)
                               at com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25)
                               at com.sun.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:95)
                               at com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:503)
                               at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:546)
                               at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:178)
                               at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
                               at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
                               at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
                               at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
                               at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                               at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
                               at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
                               at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
                               at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
                               at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                               at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
                               at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                               at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
                               at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
                               at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
                               at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
                               at java.lang.Thread.run(Thread.java:595)
                              18:22:37,947 ERROR [[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception
                              java.lang.IllegalArgumentException
                               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 javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:1590)
                               at javax.faces.component.UIComponentBase$AttributesMap.put(UIComponentBase.java:1499)
                               at org.jboss.gravel.action.handler.AttributeHandler.apply(AttributeHandler.java:106)
                               at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
                               at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
                               at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
                               at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
                               at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
                               at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
                               at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
                               at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
                               at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
                               at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
                               at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
                               at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
                               at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
                               at com.sun.facelets.tag.jsf.ComponentHandler.applyNextHandler(ComponentHandler.java:314)
                               at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:169)
                               at com.sun.facelets.tag.ui.DefineHandler.apply(DefineHandler.java:58)
                               at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:128)
                               at com.sun.facelets.impl.DefaultFaceletContext$TemplateManager.apply(DefaultFaceletContext.java:306)
                               at com.sun.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:279)
                               at com.sun.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:68)
                               at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
                               at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49)
                               at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47)
                               at com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25)
                               at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248)
                               at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294)
                               at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273)
                               at com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:143)
                               at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:113)
                               at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49)
                               at com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25)
                               at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248)
                               at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294)
                               at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273)
                               at com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:143)
                               at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:113)
                               at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49)
                               at com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25)
                               at com.sun.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:95)
                               at com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:503)
                               at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:546)
                               at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:178)
                               at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
                               at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
                               at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
                               at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                               at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                               at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                               at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
                               at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                               at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
                               at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
                               at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
                               at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
                               at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                               at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
                               at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                               at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
                               at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
                               at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
                               at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
                               at java.lang.Thread.run(Thread.java:595)
                              


                              When I switched back to JTATransactionFactory, I could start the process.

                              Pavel

                              • 12. Re: Multithreaded JobExecutor with ForEachForkActionHandler

                                My process definition

                                <?xml version="1.0" encoding="UTF-8"?>
                                
                                <process-definition name="TestProcess">
                                
                                 <start-state name="start-state">
                                 <transition to="ForEachForkActionHandler"></transition>
                                 </start-state>
                                
                                 <node name="ForEachForkActionHandler">
                                 <action class="com.sample.action.ForEachForkActionHandler">
                                 <list>
                                 <element>hello1</element>
                                 <element>hello2</element>
                                 <element>hello3</element>
                                 <element>hello4</element>
                                 <element>hello5</element>
                                 <element>hello6</element>
                                 </list>
                                 <as>asset</as>
                                 </action>
                                 <transition to="ESB service"></transition>
                                 </node>
                                
                                 <node name="ESB service">
                                 <description>Prints only message, no input, no output</description>
                                 <action
                                 class="org.jboss.soa.esb.services.jbpm.actionhandlers.EsbActionHandler">
                                 <esbServiceName>
                                 Sample_Service
                                 </esbServiceName>
                                 <esbCategoryName>
                                 Sample_Category
                                 </esbCategoryName>
                                 </action>
                                 <transition to="join"></transition>
                                 </node>
                                
                                 <join name="join">
                                 <transition to="end-state"></transition>
                                 </join>
                                
                                 <end-state name="end-state"></end-state>
                                
                                </process-definition>
                                


                                • 13. Re: Multithreaded JobExecutor with ForEachForkActionHandler

                                  I was able to simulate the exception in join with fork instead of ForEachForkActionHandler as well.

                                  • 14. Re: Multithreaded JobExecutor with ForEachForkActionHandler

                                    Sorry, I haven't worked with the JBoss app-server... hopefully someone else can help. Sorry! -Ed Staub

                                    1 2 Previous Next