0 Replies Latest reply: Oct 10, 2009 3:37 PM by 724643 RSS

    Coordinating Master Detail Processes

    724643
      JDeveloper 11g 11.1.1.1.0 and SOA Suite 11g

      I am trying to run a simple master detail process I have created newly in SOA Suite 11g. Somehow, the master BPEL process is never waiting for the child BPEL process and further, I dont see the Child BPEL instance getting created. I tried following steps from
      http://download.oracle.com/docs/cd/E12839_01/integration.1111/e10224/bp_master_detail.htm#CHDFHAEB

      Here are my code snippets :

      Composite.xml
      --------------------
      <composite name="MasterDetailProject"
                ......................
                ......................
      <import namespace="http://xmlns.oracle.com/MasterDetailDemo/MasterDetailProject/MasterProcess"
      location="MasterProcess.wsdl" importType="wsdl"/>
      <import namespace="http://xmlns.oracle.com/MasterDetailDemo/MasterDetailProject/DetailProcess"
      location="DetailProcess.wsdl" importType="wsdl"/>
      <service name="masterprocess_client_ep" ui:wsdlLocation="MasterProcess.wsdl">
      <interface.wsdl interface="http://xmlns.oracle.com/MasterDetailDemo/MasterDetailProject/MasterProcess#wsdl.interface(MasterProcess)"/>
      <binding.ws port="http://xmlns.oracle.com/MasterDetailDemo/MasterDetailProject/MasterProcess#wsdl.endpoint(masterprocess_client_ep/MasterProcess_pt)"/>
      </service>
      <component name="MasterProcess">
      <implementation.bpel src="MasterProcess.bpel"/>
      </component>
      <component name="DetailProcess">
      <implementation.bpel src="DetailProcess.bpel"/>
      </component>
      <wire>
      <source.uri>masterprocess_client_ep</source.uri>
      <target.uri>MasterProcess/masterprocess_client</target.uri>
      </wire>
      <wire>
      <source.uri>MasterProcess/DetailProcess</source.uri>
      <target.uri>DetailProcess/MasterProcess.DetailProcess</target.uri>
      </wire>
      </composite>


      MasterProcess BPEL
      -------------------------------
      <process name="MasterProcess"
                ...............
                ................
      <partnerLinks>
      <partnerLink name="masterprocess_client" partnerLinkType="client:MasterProcess" myRole="MasterProcessProvider"/>
      <partnerLink myRole="DetailProcessRequester" name="DetailProcess"
      partnerRole="DetailProcessProvider"
      partnerLinkType="ns1:DetailProcess"/>
      </partnerLinks>
      <variables>
      <variable name="inputVariable" messageType="client:MasterProcessRequestMessage"/>
      <variable name="outputVariable" messageType="client:MasterProcessResponseMessage"/>
      <variable name="Invoke_1_process_InputVariable" messageType="ns1:DetailProcessRequestMessage"/>
      </variables>
      <sequence name="main">
      <receive name="receiveInput" partnerLink="masterprocess_client" portType="client:MasterProcess" operation="process" variable="inputVariable" createInstance="yes"/>
      <bpelx:signal name="contactDetail" label="beginDetailProcess" to="details"/>
      <invoke name="InvokeDetail" inputVariable="Invoke_1_process_InputVariable"
      partnerLink="DetailProcess" portType="ns1:DetailProcess"
      operation="process"
      bpelx:invokeAsDetail="true"/>
      <bpelx:receiveSignal name="waitForDetail" label="completeDetailProcess" from="details"/>
      <reply name="replyOutput" partnerLink="masterprocess_client" portType="client:MasterProcess" operation="process" variable="outputVariable"/>
      </sequence>
      </process>


      DetailProcessBPEL
      ----------------------------
      <process name="DetailProcess"
           ..................
           .................
           .................
           
      <partnerLinks>
      <partnerLink name="detailprocess_client" partnerLinkType="client:DetailProcess" myRole="DetailProcessProvider" partnerRole="DetailProcessRequester"/>
      <partnerLink myRole="DetailProcessProvider"
      name="MasterProcess.DetailProcess"
      partnerRole="DetailProcessRequester"
      partnerLinkType="client:DetailProcess"/>
      </partnerLinks>
      <variables>
      <variable name="inputVariable" messageType="client:DetailProcessRequestMessage"/>
      <variable name="outputVariable" messageType="client:DetailProcessResponseMessage"/>
      </variables>
      <sequence name="main">
      <receive name="receiveInput" partnerLink="detailprocess_client" portType="client:DetailProcess" operation="process" variable="inputVariable" createInstance="yes"/>
      <bpelx:receiveSignal name="receiveSignal_1" label="beginDetailProcess" from="master"/>
      <bpelx:signal name="Signal_1" label="completeDetailProcess" to="master"/>
      <invoke name="callbackClient" partnerLink="detailprocess_client" portType="client:DetailProcessCallback" operation="processResponse" inputVariable="outputVariable"/>
      </sequence>
      </process>

      When I deploy and test it in Weblogic server, it immediately responds back with no errors and when I look at the instance audit train, I see no instance of child - DetailBPEL process getting created. Why is the parent not waiting for the child instance or is it that the child instance never gets started ?

      Please help me in this.
      - Regards