Multi Instance Loop Characterstics is not running in parallel

Hello,

Can someone please validate this BPMN as multiinstanceloop is not working in parallel even after specifying?

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="https://flowable.com/open-source/test">
  <process id="CAS_IMPORT_Parallel" name="CAS Import Scenario - Parallel" isExecutable="true">
    
    <startEvent id="idStartEvent" name="Start Event"></startEvent>
    
    <sequenceFlow id="idsequenceFlow1" sourceRef="idStartEvent" targetRef="idParseDescriptorsAndValidationsAndOrderList"></sequenceFlow>
    
    <serviceTask id="idParseDescriptorsAndValidationsAndOrderList" name="Parse descriptors and Validations" flowable:async="true" flowable:delegateExpression="${parseDescriptorsAndValidationsAndOrderList}"></serviceTask>
    
    <sequenceFlow id="Flow_0gqeaos" sourceRef="idParseDescriptorsAndValidationsAndOrderList" targetRef="idCASDeleteReources">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${(isValidDescriptor == "NO")}]]></conditionExpression>
    </sequenceFlow>

    <sequenceFlow id="Flow_1unfx48" sourceRef="idParseDescriptorsAndValidationsAndOrderList" targetRef="idSubProcess">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${(isValidDescriptor == "YES")}]]></conditionExpression>
    </sequenceFlow>
    
    <subProcess id="idSubProcess" name="Deployment Sub Process">
      <multiInstanceLoopCharacteristics isSequential="false" flowable:collection="${modulesList}" flowable:elementVariable="${currentModule}">
        <completionCondition>${(numOfDeployedModules &gt;= numOfModules)}</completionCondition>
      </multiInstanceLoopCharacteristics>
      <serviceTask id="idUploadAndDeploy" name="Upload and Deploy" flowable:delegateExpression="${uploadAndDeploy}"></serviceTask>
      <serviceTask id="idGetGACDStatus" name="Get Status" flowable:delegateExpression="${getGACDStatus}"></serviceTask>
      <serviceTask id="idGetGACDLogs" name="Get Logs" flowable:delegateExpression="${getGACDLogs}"></serviceTask>
      <serviceTask id="idGACDDelete" name="Delete Content" flowable:delegateExpression="${gACDDelete}"></serviceTask>
      <startEvent id="sid-1D13FC6D-6238-4364-8964-76566FB0A721" flowable:formFieldValidation="true"></startEvent>
      <endEvent id="sid-9E4CCD52-9F69-4381-B449-5BE76A011914"></endEvent>
      <sequenceFlow id="idsequenceFlow5" sourceRef="idGetGACDLogs" targetRef="idGACDDelete"></sequenceFlow>
      <sequenceFlow id="idsequenceFlow3" sourceRef="idUploadAndDeploy" targetRef="idGetGACDStatus">
        <conditionExpression xsi:type="tFormalExpression"><![CDATA[${isUploadAndDeployFailed == 'false'}]]></conditionExpression>
      </sequenceFlow>
      <sequenceFlow id="idsequenceFlow4" sourceRef="idGetGACDStatus" targetRef="idGetGACDLogs"></sequenceFlow>
      <sequenceFlow id="sid-FAD50955-AD68-49F2-97C7-5C8F280CF46D" sourceRef="idGACDDelete" targetRef="sid-9E4CCD52-9F69-4381-B449-5BE76A011914"></sequenceFlow>
      <sequenceFlow id="sid-111E2145-C8F8-4861-9BC6-01CF22D87532" sourceRef="sid-1D13FC6D-6238-4364-8964-76566FB0A721" targetRef="idUploadAndDeploy"></sequenceFlow>
    </subProcess>
    
    <sequenceFlow id="idsequenceFlow6" sourceRef="idSubProcess" targetRef="idCASDeleteReources">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${(numOfDeployedModules >= numOfModules)}]]></conditionExpression>
    </sequenceFlow>
    <serviceTask id="idCASDeleteReources" name="CAS Delete Reources from Disk" flowable:delegateExpression="${cASDeleteResources}"></serviceTask>
    <sequenceFlow id="idsequenceFlow8" sourceRef="idCASDeleteReources" targetRef="idEndEvent"></sequenceFlow>
    <endEvent id="idEndEvent" name="End Event"></endEvent>
  </process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_CAS_IMPORT_Parallel">
    <bpmndi:BPMNPlane bpmnElement="CAS_IMPORT_Parallel" id="BPMNPlane_CAS_IMPORT_Parallel">
      <bpmndi:BPMNShape bpmnElement="idStartEvent" id="BPMNShape_idStartEvent">
        <omgdc:Bounds height="30.0" width="30.0" x="162.0" y="202.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="idParseDescriptorsAndValidationsAndOrderList" id="BPMNShape_idParseDescriptorsAndValidationsAndOrderList">
        <omgdc:Bounds height="80.0" width="100.0" x="270.0" y="180.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="idCASDeleteReources" id="BPMNShape_idCASDeleteReources">
        <omgdc:Bounds height="80.0" width="100.0" x="1090.0" y="166.5"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="idEndEvent" id="BPMNShape_idEndEvent">
        <omgdc:Bounds height="28.0" width="28.0" x="1230.0" y="192.5"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="idSubProcess" id="BPMNShape_idSubProcess">
        <omgdc:Bounds height="233.0" width="606.0" x="390.0" y="90.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="idUploadAndDeploy" id="BPMNShape_idUploadAndDeploy">
        <omgdc:Bounds height="80.0" width="100.0" x="420.0" y="162.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="idGetGACDStatus" id="BPMNShape_idGetGACDStatus">
        <omgdc:Bounds height="80.0" width="100.0" x="570.0" y="162.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="idGetGACDLogs" id="BPMNShape_idGetGACDLogs">
        <omgdc:Bounds height="80.0" width="100.0" x="720.0" y="162.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="idGACDDelete" id="BPMNShape_idGACDDelete">
        <omgdc:Bounds height="80.0" width="100.0" x="870.0" y="162.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="sid-1D13FC6D-6238-4364-8964-76566FB0A721" id="BPMNShape_sid-1D13FC6D-6238-4364-8964-76566FB0A721">
        <omgdc:Bounds height="30.0" width="30.0" x="455.0" y="97.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="sid-9E4CCD52-9F69-4381-B449-5BE76A011914" id="BPMNShape_sid-9E4CCD52-9F69-4381-B449-5BE76A011914">
        <omgdc:Bounds height="28.0" width="28.0" x="906.0" y="274.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge bpmnElement="idsequenceFlow1" id="BPMNEdge_idsequenceFlow1">
        <omgdi:waypoint x="191.94667074894215" y="217.3135688088713"></omgdi:waypoint>
        <omgdi:waypoint x="269.9999999999977" y="218.9510489510489"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="Flow_0gqeaos" id="BPMNEdge_Flow_0gqeaos">
        <omgdi:waypoint x="320.0" y="259.95000000000005"></omgdi:waypoint>
        <omgdi:waypoint x="320.0" y="350.0"></omgdi:waypoint>
        <omgdi:waypoint x="1140.0" y="350.0"></omgdi:waypoint>
        <omgdi:waypoint x="1140.0" y="246.45000000000002"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="Flow_1unfx48" id="BPMNEdge_Flow_1unfx48">
        <omgdi:waypoint x="369.95000000000005" y="219.38636363636365"></omgdi:waypoint>
        <omgdi:waypoint x="390.0" y="207.08295454545453"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="idsequenceFlow8" id="BPMNEdge_idsequenceFlow8">
        <omgdi:waypoint x="1189.9499999999564" y="206.5"></omgdi:waypoint>
        <omgdi:waypoint x="1230.0" y="206.5"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sid-FAD50955-AD68-49F2-97C7-5C8F280CF46D" id="BPMNEdge_sid-FAD50955-AD68-49F2-97C7-5C8F280CF46D">
        <omgdi:waypoint x="920.0" y="241.95000000000002"></omgdi:waypoint>
        <omgdi:waypoint x="920.0" y="274.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="idsequenceFlow6" id="BPMNEdge_idsequenceFlow6">
        <omgdi:waypoint x="995.95" y="206.5"></omgdi:waypoint>
        <omgdi:waypoint x="1089.9999999999775" y="206.5"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="idsequenceFlow5" id="BPMNEdge_idsequenceFlow5">
        <omgdi:waypoint x="819.9499999999581" y="202.0"></omgdi:waypoint>
        <omgdi:waypoint x="869.9999999999363" y="202.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="idsequenceFlow4" id="BPMNEdge_idsequenceFlow4">
        <omgdi:waypoint x="669.9499999999581" y="202.0"></omgdi:waypoint>
        <omgdi:waypoint x="719.9999999999363" y="202.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sid-111E2145-C8F8-4861-9BC6-01CF22D87532" id="BPMNEdge_sid-111E2145-C8F8-4861-9BC6-01CF22D87532">
        <omgdi:waypoint x="470.0" y="126.94999298265644"></omgdi:waypoint>
        <omgdi:waypoint x="470.0" y="162.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="idsequenceFlow3" id="BPMNEdge_idsequenceFlow3">
        <omgdi:waypoint x="519.9499999999581" y="202.0"></omgdi:waypoint>
        <omgdi:waypoint x="569.9999999999363" y="202.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</definitions>

Regards,
Ashmita Sinha

Hey @aashi,

This is actually expected to work like that. The parallel multi instance is Parallel in the Business sense of things. Imagine having multiple user tasks, they will all be available in the same time. However, from an execution point of view it is being executed in one transaction.

In order to make this parallel you have 2 options:

  • Make your delegate expressions use the new True Parallel Service Task Execution with Flowable. With this the complex and potentially slow logic will be executed in a different thread and in parallel. - This is available in 6.6.0. This is all happening in one transaction, and is potentially the best performance that you can get.
  • Make your Sub Process async and non-exclusive. However, currently this has a potential of throwing Optimistic locking exceptions. This is resolved with the new Multi Instance Variable Aggregation, which will be available in 6.6.1. Keep in mind that doing this would mean that you have different transactions for every execution.

Cheers,
Filip

Thanks @filiphr,

I can try the options that you have suggested. But for the second option, how can I make sure that there are different transactions for every executions?

Regards,
Ashmita

By making the Sub Process async and not exclusive then they will be running in multiple transactions.

Is there any other factor on which this multi instance loop depends? I tried the option 2, but doesn’t seems to be working.

What exactly isn’t working with the option 2? What did you try?

This is exactly what I tried,

<?xml version="1.0" encoding="UTF-8"?>
    <startEvent id="idStartEvent" name="Start Event"></startEvent>



    <sequenceFlow id="idsequenceFlow1" sourceRef="idStartEvent" targetRef="idParseDescriptorsAndValidationsAndOrderList"></sequenceFlow>



    <serviceTask id="idParseDescriptorsAndValidationsAndOrderList" name="Parse descriptors and Validations" flowable:async="true" flowable:delegateExpression="${parseDescriptorsAndValidationsAndOrderList}"></serviceTask>



    <sequenceFlow id="Flow_0gqeaos" sourceRef="idParseDescriptorsAndValidationsAndOrderList" targetRef="idCASDeleteReources">
        <conditionExpression xsi:type="tFormalExpression"><![CDATA[${(isValidDescriptor == "NO")}]]></conditionExpression>
    </sequenceFlow>



    <sequenceFlow id="Flow_1unfx48" sourceRef="idParseDescriptorsAndValidationsAndOrderList" targetRef="idSubProcess">
        <conditionExpression xsi:type="tFormalExpression"><![CDATA[${(isValidDescriptor == "YES")}]]></conditionExpression>
    </sequenceFlow>



    <subProcess id="idSubProcess" flowable:async="true" flowable:exclusive="false" name="Deployment Sub Process">
        <multiInstanceLoopCharacteristics  isSequential="false" flowable:collection="${modulesList}" flowable:elementVariable="${currentModule}">
            <loopCardinality>${numOfModules}</loopCardinality>
            <completionCondition>${(numOfDeployedModules &gt;= numOfModules)}</completionCondition>
        </multiInstanceLoopCharacteristics>
        <serviceTask id="idUploadAndDeploy" name="Upload and Deploy" flowable:delegateExpression="${uploadAndDeploy}"></serviceTask>
        <serviceTask id="idGetGACDStatus" name="Get Status" flowable:delegateExpression="${getGACDStatus}"></serviceTask>
        <serviceTask id="idGetGACDLogs" name="Get Logs" flowable:delegateExpression="${getGACDLogs}"></serviceTask>
        <serviceTask id="idGACDDelete" name="Delete Content" flowable:delegateExpression="${gACDDelete}"></serviceTask>
        <startEvent id="sid-1D13FC6D-6238-4364-8964-76566FB0A721" ></startEvent>
        <endEvent id="sid-9E4CCD52-9F69-4381-B449-5BE76A011914"></endEvent>
        <sequenceFlow id="idsequenceFlow5" sourceRef="idGetGACDLogs" targetRef="idGACDDelete"></sequenceFlow>
        <sequenceFlow id="idsequenceFlow3" sourceRef="idUploadAndDeploy" targetRef="idGetGACDStatus">
            <conditionExpression xsi:type="tFormalExpression"><![CDATA[${isUploadAndDeployFailed == 'false'}]]></conditionExpression>
        </sequenceFlow>
        <sequenceFlow id="idsequenceFlow4" sourceRef="idGetGACDStatus" targetRef="idGetGACDLogs"></sequenceFlow>
        <sequenceFlow id="sid-FAD50955-AD68-49F2-97C7-5C8F280CF46D" sourceRef="idGACDDelete" targetRef="sid-9E4CCD52-9F69-4381-B449-5BE76A011914"></sequenceFlow>
        <sequenceFlow id="sid-111E2145-C8F8-4861-9BC6-01CF22D87532" sourceRef="sid-1D13FC6D-6238-4364-8964-76566FB0A721" targetRef="idUploadAndDeploy"></sequenceFlow>
    </subProcess>



    <sequenceFlow id="idsequenceFlow6" sourceRef="idSubProcess" targetRef="idCASDeleteReources">
        <conditionExpression xsi:type="tFormalExpression"><![CDATA[${(numOfDeployedModules >= numOfModules)}]]></conditionExpression>
    </sequenceFlow>
    <serviceTask id="idCASDeleteReources" name="CAS Delete Reources from Disk" flowable:delegateExpression="${cASDeleteResources}"></serviceTask>
    <sequenceFlow id="idsequenceFlow8" sourceRef="idCASDeleteReources" targetRef="idEndEvent"></sequenceFlow>
    <endEvent id="idEndEvent" name="End Event"></endEvent>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_CAS_IMPORT_Parallel">
    <bpmndi:BPMNPlane bpmnElement="CAS_IMPORT_Parallel" id="BPMNPlane_CAS_IMPORT_Parallel">
        <bpmndi:BPMNShape bpmnElement="idStartEvent" id="BPMNShape_idStartEvent">
            <omgdc:Bounds height="30.0" width="30.0" x="162.0" y="202.0"></omgdc:Bounds>
        </bpmndi:BPMNShape>
        <bpmndi:BPMNShape bpmnElement="idParseDescriptorsAndValidationsAndOrderList" id="BPMNShape_idParseDescriptorsAndValidationsAndOrderList">
            <omgdc:Bounds height="80.0" width="100.0" x="270.0" y="180.0"></omgdc:Bounds>
        </bpmndi:BPMNShape>
        <bpmndi:BPMNShape bpmnElement="idCASDeleteReources" id="BPMNShape_idCASDeleteReources">
            <omgdc:Bounds height="80.0" width="100.0" x="1090.0" y="166.5"></omgdc:Bounds>
        </bpmndi:BPMNShape>
        <bpmndi:BPMNShape bpmnElement="idEndEvent" id="BPMNShape_idEndEvent">
            <omgdc:Bounds height="28.0" width="28.0" x="1230.0" y="192.5"></omgdc:Bounds>
        </bpmndi:BPMNShape>
        <bpmndi:BPMNShape bpmnElement="idSubProcess" id="BPMNShape_idSubProcess">
            <omgdc:Bounds height="233.0" width="606.0" x="390.0" y="90.0"></omgdc:Bounds>
        </bpmndi:BPMNShape>
        <bpmndi:BPMNShape bpmnElement="idUploadAndDeploy" id="BPMNShape_idUploadAndDeploy">
            <omgdc:Bounds height="80.0" width="100.0" x="420.0" y="162.0"></omgdc:Bounds>
        </bpmndi:BPMNShape>
        <bpmndi:BPMNShape bpmnElement="idGetGACDStatus" id="BPMNShape_idGetGACDStatus">
            <omgdc:Bounds height="80.0" width="100.0" x="570.0" y="162.0"></omgdc:Bounds>
        </bpmndi:BPMNShape>
        <bpmndi:BPMNShape bpmnElement="idGetGACDLogs" id="BPMNShape_idGetGACDLogs">
            <omgdc:Bounds height="80.0" width="100.0" x="720.0" y="162.0"></omgdc:Bounds>
        </bpmndi:BPMNShape>
        <bpmndi:BPMNShape bpmnElement="idGACDDelete" id="BPMNShape_idGACDDelete">
            <omgdc:Bounds height="80.0" width="100.0" x="870.0" y="162.0"></omgdc:Bounds>
        </bpmndi:BPMNShape>
        <bpmndi:BPMNShape bpmnElement="sid-1D13FC6D-6238-4364-8964-76566FB0A721" id="BPMNShape_sid-1D13FC6D-6238-4364-8964-76566FB0A721">
            <omgdc:Bounds height="30.0" width="30.0" x="455.0" y="97.0"></omgdc:Bounds>
        </bpmndi:BPMNShape>
        <bpmndi:BPMNShape bpmnElement="sid-9E4CCD52-9F69-4381-B449-5BE76A011914" id="BPMNShape_sid-9E4CCD52-9F69-4381-B449-5BE76A011914">
            <omgdc:Bounds height="28.0" width="28.0" x="906.0" y="274.0"></omgdc:Bounds>
        </bpmndi:BPMNShape>
        <bpmndi:BPMNEdge bpmnElement="idsequenceFlow1" id="BPMNEdge_idsequenceFlow1">
            <omgdi:waypoint x="191.94667074894215" y="217.3135688088713"></omgdi:waypoint>
            <omgdi:waypoint x="269.9999999999977" y="218.9510489510489"></omgdi:waypoint>
        </bpmndi:BPMNEdge>
        <bpmndi:BPMNEdge bpmnElement="Flow_0gqeaos" id="BPMNEdge_Flow_0gqeaos">
            <omgdi:waypoint x="320.0" y="259.95000000000005"></omgdi:waypoint>
            <omgdi:waypoint x="320.0" y="350.0"></omgdi:waypoint>
            <omgdi:waypoint x="1140.0" y="350.0"></omgdi:waypoint>
            <omgdi:waypoint x="1140.0" y="246.45000000000002"></omgdi:waypoint>
        </bpmndi:BPMNEdge>
        <bpmndi:BPMNEdge bpmnElement="Flow_1unfx48" id="BPMNEdge_Flow_1unfx48">
            <omgdi:waypoint x="369.95000000000005" y="219.38636363636365"></omgdi:waypoint>
            <omgdi:waypoint x="390.0" y="207.08295454545453"></omgdi:waypoint>
        </bpmndi:BPMNEdge>
        <bpmndi:BPMNEdge bpmnElement="idsequenceFlow8" id="BPMNEdge_idsequenceFlow8">
            <omgdi:waypoint x="1189.9499999999564" y="206.5"></omgdi:waypoint>
            <omgdi:waypoint x="1230.0" y="206.5"></omgdi:waypoint>
        </bpmndi:BPMNEdge>
        <bpmndi:BPMNEdge bpmnElement="sid-FAD50955-AD68-49F2-97C7-5C8F280CF46D" id="BPMNEdge_sid-FAD50955-AD68-49F2-97C7-5C8F280CF46D">
            <omgdi:waypoint x="920.0" y="241.95000000000002"></omgdi:waypoint>
            <omgdi:waypoint x="920.0" y="274.0"></omgdi:waypoint>
        </bpmndi:BPMNEdge>
        <bpmndi:BPMNEdge bpmnElement="idsequenceFlow6" id="BPMNEdge_idsequenceFlow6">
            <omgdi:waypoint x="995.95" y="206.5"></omgdi:waypoint>
            <omgdi:waypoint x="1089.9999999999775" y="206.5"></omgdi:waypoint>
        </bpmndi:BPMNEdge>
        <bpmndi:BPMNEdge bpmnElement="idsequenceFlow5" id="BPMNEdge_idsequenceFlow5">
            <omgdi:waypoint x="819.9499999999581" y="202.0"></omgdi:waypoint>
            <omgdi:waypoint x="869.9999999999363" y="202.0"></omgdi:waypoint>
        </bpmndi:BPMNEdge>
        <bpmndi:BPMNEdge bpmnElement="idsequenceFlow4" id="BPMNEdge_idsequenceFlow4">
            <omgdi:waypoint x="669.9499999999581" y="202.0"></omgdi:waypoint>
            <omgdi:waypoint x="719.9999999999363" y="202.0"></omgdi:waypoint>
        </bpmndi:BPMNEdge>
        <bpmndi:BPMNEdge bpmnElement="sid-111E2145-C8F8-4861-9BC6-01CF22D87532" id="BPMNEdge_sid-111E2145-C8F8-4861-9BC6-01CF22D87532">
            <omgdi:waypoint x="470.0" y="126.94999298265644"></omgdi:waypoint>
            <omgdi:waypoint x="470.0" y="162.0"></omgdi:waypoint>
        </bpmndi:BPMNEdge>
        <bpmndi:BPMNEdge bpmnElement="idsequenceFlow3" id="BPMNEdge_idsequenceFlow3">
            <omgdi:waypoint x="519.9499999999581" y="202.0"></omgdi:waypoint>
            <omgdi:waypoint x="569.9999999999363" y="202.0"></omgdi:waypoint>
        </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>

Hi @filiphr , I am trying to run multiinstance parallel with call activity. Here async=true, exclusive=false and completeAsync=true to achieve true parallellism of child process instance execution. But I am getting OptimisticLockException due to this. When I mark exclusive=true to obtain lock on parent instance then I loose true parallellism as async threads are taking lock one after another.

Can you please help me here.