2 Replies Latest reply on Aug 18, 2014 8:39 AM by simon0b101010

    "Conflicting receive" in BPM process


      Hi all,


      We have 2 BPM processes: a creation process and an update process. Those 2 processes are triggered by 2 business events: CreatedEvent and UpdatedEvent. The update process is basically doing a revert and a triggers a new CreatedEvent which starts a new creation process.

      At any time, some DeletedEvent might be received. In that situation, we have a sub process in the creation process that terminates the targeted instance. It is based on a correlation key composed of 3 properties (propertyA, propertyB and propertyC) and initiated at the beginning of the creation process.


      We have the following scenario:

      1. CreatedEvent raised -> creation process is triggered and completes normally with correlation key (propertyA='26869', propertyB='PR1' and propertyC='PR00000001')
      2. UpdatedEvent raised -> update process is triggered which triggers again the creation process with same correlation key (propertyA='26869', propertyB='PR1' and propertyC='PR00000001') and update process completes normally BUT the newly creation process fails at the begining with this message :


      Unhandled BPELFault:faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-process/}conflictingReceive}[[

      messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}

      parts: {{

      summary=<summary>Conflicting receive.

      A similar receive activity is being declared in the same process.

      Another receive activity or equivalent (currently, onMessage branch in a pick activity) has already been enabled with the partnerLink "", operation name "{[...]/entities/events/edl/Event}DeletedEvent" and correlation set







      {http://xmlns.oracle.com/bpmn/bpmnProcess/TestComposite}propertyC=PR00000001}" (or conversation ID).  Appendix A - Standard Faults in the BPEL 1.1 specification specifies a fault should be thrown under these conditions.

      Redeploy the process after removing the conflicting receive activities.



      What you need to know is in some situation, this "create then update" process does work as expected but in a different scenario (different path in the creation process), it is failing with previous message. I have read about some post mentioning a solution based on adding a conversation id. But I think it would break my deletion process as if I have:

      A creation process with correlation key (propertyA='26869', propertyB='PR1' and propertyC='PR00000001', conversationId='abcd123')

      And if we get a DeletedEvent with correlation key (propertyA='26869', propertyB='PR1' and propertyC='PR00000001', conversationId='dsdsd456')

      It wouldn't work right?


      Am I missing something here?


      Thanks for your help.