JBPM Multi-Instance sub process parallel loop Characteristics is not working

163 views
Skip to first unread message

Muhammad Athar Aziz

unread,
Feb 8, 2020, 7:08:39 AM2/8/20
to jBPM Usage

Hi All,


I have created a business process with multi-instance sub process. I have to execute in parallel iteration of multi instance sub process loop. But it is working sequentially even i choose (MI Execution Mode) Parallel. Please advice how can i execute all iterations in parallel. Thanks in advance



Maciej Swiderski

unread,
Feb 10, 2020, 3:20:14 AM2/10/20
to Muhammad Athar Aziz, jBPM Usage
The easiest way will be to mark activities that should be executed in parallel as async and thus they will run in different threads. Though keep in mind that this will increase the concurrency on given process instance and might lead to race conditions.

Maciej

On 8 Feb 2020, at 13:08, Muhammad Athar Aziz <matha...@gmail.com> wrote:

Hi All,


I have created a business process with multi-instance sub process. I have to execute in parallel iteration of multi instance sub process loop. But it is working sequentially even i choose (MI Execution Mode) Parallel. Please advice how can i execute all iterations in parallel. Thanks in advance



<Auto Generated Inline Image 1.png>

--
You received this message because you are subscribed to the Google Groups "jBPM Usage" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jbpm-usage+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jbpm-usage/94646b84-63d1-465d-b3a1-e3afe8cfb489%40googlegroups.com.
<Auto Generated Inline Image 1.png>

Muhammad Athar Aziz

unread,
Feb 10, 2020, 5:25:05 AM2/10/20
to Maciej Swiderski, jBPM Usage
Hi Maciej,

Thanks for your reply. But I have followed documentation in chapter 26 and convert my handler method into thread according to chapter section 26.2.1. Asynchronous handlers. then it's working in parallel. But I am getting the following exception while putting the output in its out variable.
My handler class is attached for your reference. Please advise. Thanks for your time. 

15:15:10,926 WARN  [org.drools.persistence.api.TransactionSynchronizationRegistryHelper] (Thread-280) Unable to put resource org.kie.api.persistence.jpa.CmdScopedEntityManager value SessionImpl(1183270519<open>) due to No transaction associated with the current thread
15:15:10,926 ERROR [stderr] (Thread-283) Exception in thread "Thread-283" javax.persistence.TransactionRequiredException: Explicitly joining a JTA transaction requires a JTA transaction be currently active
15:15:10,926 WARN  [org.drools.persistence.api.TransactionSynchronizationRegistryHelper] (Thread-295) Unable to put resource org.kie.api.persistence.jpa.CmdScopedEntityManager value SessionImpl(1183270519<open>) due to No transaction associated with the current thread
15:15:10,926 ERROR [stderr] (Thread-283) Exception in thread "Thread-280"       at deployment.kie-server.war//org.hibernate.internal.SessionImpl.joinTransaction(SessionImpl.java:3852)
15:15:10,941 ERROR [stderr] (Thread-283) Exception in thread "Thread-295"       at deployment.kie-server.war//org.hibernate.internal.SessionImpl.joinTransaction(SessionImpl.java:3837)
15:15:10,941 ERROR [stderr] (Thread-283)        at deployment.kie-server.war//org.drools.persistence.jpa.AbstractPersistenceContextManager.getCommandScopedEntityManager(AbstractPersistenceContextManager.java:107)
15:15:10,941 ERROR [stderr] (Thread-283)        at deployment.kie-server.war//org.jbpm.persistence.JpaProcessPersistenceContextManager.getCommandScopedEntityManager(JpaProcessPersistenceContextManager.java:49)
15:15:10,941 ERROR [stderr] (Thread-283)        at deployment.kie-server.war//org.drools.persistence.jpa.JpaPersistenceContextManager.getCommandScopedPersistenceContext(JpaPersistenceContextManager.java:59)
15:15:10,941 ERROR [stderr] (Thread-283)        at deployment.kie-server.war//org.drools.persistence.jpa.processinstance.JPAWorkItemManager.getPersistenceContext(JPAWorkItemManager.java:137)
15:15:10,941 ERROR [stderr] (Thread-283)        at deployment.kie-server.war//org.drools.persistence.jpa.processinstance.JPAWorkItemManager.completeWorkItem(JPAWorkItemManager.java:145)
15:15:10,941 ERROR [stderr] (Thread-283)        at deployment.kie-server.war//com.ecs.etlsubworkitem.ETLSubWorkItemHandler$1.run(ETLSubWorkItemHandler.java:119)
15:15:10,941 ERROR [stderr] (Thread-283)        at java.base/java.lang.Thread.run(Thread.java:834)
15:15:10,941 ERROR [stderr] (Thread-295) javax.persistence.TransactionRequiredException: Explicitly joining a JTA transaction requires a JTA transaction be currently active
15:15:10,941 ERROR [stderr] (Thread-295)        at deployment.kie-server.war//org.hibernate.internal.SessionImpl.joinTransaction(SessionImpl.java:3852)
15:15:10,941 ERROR [stderr] (Thread-295)        at deployment.kie-server.war//org.hibernate.internal.SessionImpl.joinTransaction(SessionImpl.java:3837)
15:15:10,941 ERROR [stderr] (Thread-295)        at deployment.kie-server.war//org.drools.persistence.jpa.AbstractPersistenceContextManager.getCommandScopedEntityManager(AbstractPersistenceContextManager.java:107)
15:15:10,941 ERROR [stderr] (Thread-295)        at deployment.kie-server.war//org.jbpm.persistence.JpaProcessPersistenceContextManager.getCommandScopedEntityManager(JpaProcessPersistenceContextManager.java:49)
15:15:10,941 ERROR [stderr] (Thread-295)        at deployment.kie-server.war//org.drools.persistence.jpa.JpaPersistenceContextManager.getCommandScopedPersistenceContext(JpaPersistenceContextManager.java:59)
15:15:10,941 ERROR [stderr] (Thread-295)        at deployment.kie-server.war//org.drools.persistence.jpa.processinstance.JPAWorkItemManager.getPersistenceContext(JPAWorkItemManager.java:137)
15:15:10,941 ERROR [stderr] (Thread-295)        at deployment.kie-server.war//org.drools.persistence.jpa.processinstance.JPAWorkItemManager.completeWorkItem(JPAWorkItemManager.java:145)
15:15:10,941 ERROR [stderr] (Thread-295)        at deployment.kie-server.war//com.ecs.etlsubworkitem.ETLSubWorkItemHandler$1.run(ETLSubWorkItemHandler.java:119)
15:15:10,941 ERROR [stderr] (Thread-295)        at java.base/java.lang.Thread.run(Thread.java:834)
15:15:10,941 ERROR [stderr] (Thread-280) javax.persistence.TransactionRequiredException: Explicitly joining a JTA transaction requires a JTA transaction be currently active
15:15:10,941 ERROR [stderr] (Thread-280)        at deployment.kie-server.war//org.hibernate.internal.SessionImpl.joinTransaction(SessionImpl.java:3852)
15:15:10,941 ERROR [stderr] (Thread-280)        at deployment.kie-server.war//org.hibernate.internal.SessionImpl.joinTransaction(SessionImpl.java:3837)
15:15:10,941 ERROR [stderr] (Thread-280)        at deployment.kie-server.war//org.drools.persistence.jpa.AbstractPersistenceContextManager.getCommandScopedEntityManager(AbstractPersistenceContextManager.java:107)
15:15:10,941 ERROR [stderr] (Thread-280)        at deployment.kie-server.war//org.jbpm.persistence.JpaProcessPersistenceContextManager.getCommandScopedEntityManager(JpaProcessPersistenceContextManager.java:49)
15:15:10,941 ERROR [stderr] (Thread-280)        at deployment.kie-server.war//org.drools.persistence.jpa.JpaPersistenceContextManager.getCommandScopedPersistenceContext(JpaPersistenceContextManager.java:59)
15:15:10,941 ERROR [stderr] (Thread-280)        at deployment.kie-server.war//org.drools.persistence.jpa.processinstance.JPAWorkItemManager.getPersistenceContext(JPAWorkItemManager.java:137)
15:15:10,941 ERROR [stderr] (Thread-280)        at deployment.kie-server.war//org.drools.persistence.jpa.processinstance.JPAWorkItemManager.completeWorkItem(JPAWorkItemManager.java:145)
15:15:10,941 ERROR [stderr] (Thread-280)        at deployment.kie-server.war//com.ecs.etlsubworkitem.ETLSubWorkItemHandler$1.run(ETLSubWorkItemHandler.java:119)
15:15:10,941 ERROR [stderr] (Thread-280)        at java.base/java.lang.Thread.run(Thread.java:834)

ETLSubWorkItemHandler.java

Maciej Swiderski

unread,
Feb 10, 2020, 7:22:56 AM2/10/20
to Muhammad Athar Aziz, jBPM Usage
You don’t need to implement extra logic in handler, just mark your node as “Is async” in the editor/stunner and the async operation will be done for you

Maciej

<ETLSubWorkItemHandler.java>

Muhammad Athar Aziz

unread,
Feb 10, 2020, 8:11:14 AM2/10/20
to Maciej Swiderski, jBPM Usage
Thank you for the clarification.
Reply all
Reply to author
Forward
0 new messages