Hi Sathwik,

                Find below the bpel code and wsdl for asynchronous web service. 
Is there some issue with correlation here?



BPEL

<?xml version="1.0" encoding="UTF-8"?>

<process

    name="PrcWithAsyncService"

    
targetNamespace="http://enterprise.netbeans.org/bpel/PrcWithAsynchronousService/PrcWithAsyncService";

    xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable";

    xmlns:xsd="http://www.w3.org/2001/XMLSchema";

    
xmlns:sxt="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Trace";

    
xmlns:sxed="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/Editor";

    
xmlns:tns="http://enterprise.netbeans.org/bpel/PrcWithAsynchronousService/PrcWithAsyncService";

    xmlns:ns0="http://examples.home.dev/jobprocessor";

    
xmlns:ns1="http://enterprise.netbeans.org/wsdl/PrcWithAsynchronousService/PrcWithAsyncService";
 xmlns:ns2="http://examples.home.dev/jobprocessor/types";>



<import location="PrcWithAsyncService.wsdl" 
namespace="http://enterprise.netbeans.org/wsdl/PrcWithAsynchronousService/PrcWithAsyncService";
 importType="http://schemas.xmlsoap.org/wsdl/"; />

<import location="jobprocessor.wsdl" 
namespace="http://examples.home.dev/jobprocessor"; 
importType="http://schemas.xmlsoap.org/wsdl/"; />

<import namespace="http://www.altair.com/WF/Framework/EPMODEBridgeService"; 
location="EPMODEBridgeService.wsdl" 
importType="http://schemas.xmlsoap.org/wsdl/"/>

<partnerLinks>

     <partnerLink name="EPMODEPL" 
xmlns:tns="http://www.altair.com/WF/Framework/EPMODEBridgeService"; 
partnerLinkType="tns:EPMODEBridgePLT" 
partnerRole="EPMODEBridgeServiceInvokeRole"/>

     <partnerLink name="PrcWithAsyncServicePL" 
xmlns:tns="http://enterprise.netbeans.org/wsdl/PrcWithAsynchronousService/PrcWithAsyncService";
 partnerLinkType="tns:PrcWithAsyncService" myRole="PrcWithAsyncServiceProvider" 
partnerRole="PrcWithAsyncServiceRequester"/>

    <partnerLink partnerLinkType="ns0:JobProcessorLinkType"  
name="JobProcessor" myRole="NotifyJobCompletionPortTypeRole" 
partnerRole="JobProcessorRole" initializePartnerRole="yes" />

</partnerLinks>



    <variables>

        <variable name="GetCorrelationIDOut" 
xmlns:tns="http://www.altair.com/WF/Framework/EPMODEBridgeService"; 
messageType="tns:GetCorrelationIDReply"/>

        <variable name="GetCorrelationIDIn" 
xmlns:tns="http://www.altair.com/WF/Framework/EPMODEBridgeService"; 
messageType="tns:GetCorrelationIDRequest"/>

        <variable name="InitiateIn" 
messageType="ns1:PrcWithAsyncServiceRequestMessage"/>

        <variable name="ReplyFinishedJobIn" messageType="ns0:JobReply"/>

        <variable name="ProcessJobIn" 
xmlns:ns0="http://examples.home.dev/jobprocessor"; messageType="ns0:Job"/>

    </variables>

      <correlationSets>

       <correlationSet name="JobCorrelator" properties="ns0:Id"/>

      </correlationSets>



    <sequence>

        <receive name="Receive1" createInstance="yes" 
partnerLink="PrcWithAsyncServicePL" operation="initiate" 
portType="ns1:PrcWithAsyncService" variable="InitiateIn"/>

        <assign name="Assign2">

            <copy>

                <from>'AsynPrc'</from>

                <to variable="GetCorrelationIDIn" 
part="partGetCorrelationIDRequest"/>

            </copy>

        </assign>

        <invoke name="Invoke2" partnerLink="EPMODEPL" 
operation="GetCorrelationID" 
xmlns:tns="http://www.altair.com/WF/Framework/EPMODEBridgeService"; 
portType="tns:EPMODEBridgeServicePortType" inputVariable="GetCorrelationIDIn" 
outputVariable="GetCorrelationIDOut"/>

        <assign name="Assign1">

            <copy>

                <from>

                    <literal>

                        <ns2:Job>

                            <ns2:jobId></ns2:jobId>

                            <ns2:payload></ns2:payload>

                        </ns2:Job>

                    </literal>

                </from>

                <to>$ProcessJobIn.job</to>

            </copy>

            <copy>

                <from>'HelloWorld'</from>

                <to>$ProcessJobIn.job/ns2:payload</to>

            </copy>

            <copy>

                <from variable="GetCorrelationIDOut" 
part="partGetCorrelationIDReply"/>

                <to>$ProcessJobIn.job/ns2:jobId</to>

            </copy>

        </assign>

        <invoke name="Invoke1" partnerLink="JobProcessor" 
operation="processJob" xmlns:ns0="http://examples.home.dev/jobprocessor"; 
portType="ns0:JobProcessor" inputVariable="ProcessJobIn">

            <correlations>

                <correlation set="JobCorrelator" initiate="yes"/>

            </correlations>

        </invoke>

        <receive name="Receive2" createInstance="no" partnerLink="JobProcessor" 
operation="replyFinishedJob" portType="ns0:JobProcessorNotify" 
variable="ReplyFinishedJobIn">

            <correlations>

                <correlation set="JobCorrelator" initiate="no"/>

            </correlations>

        </receive>

    </sequence>

</process>



Asynchronous web service WSDL

<?xml version="1.0" encoding="UTF-8" ?>

<definitions targetNamespace="http://examples.home.dev/jobprocessor";

                                                 
xmlns:jpt="http://examples.home.dev/jobprocessor/types";

                                                 
xmlns:jp="http://examples.home.dev/jobprocessor";

                                                 
xmlns="http://schemas.xmlsoap.org/wsdl/";

                                                 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";

                                                 
xmlns:xsd="http://www.w3.org/2001/XMLSchema";

                                                 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";

                                                 
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/";

                                                 
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/";

                                                 
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl";

             xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/varprop";

             xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype";>

  <types>

                <xsd:schema 
targetNamespace="http://examples.home.dev/jobprocessor/types";

                                                                
elementFormDefault="qualified">

                  <xsd:include schemaLocation="jobprocessor.xsd"/>

                </xsd:schema>

  </types>

  <message name="Job">

                <part name="job" element="jpt:Job"/>

  </message>

  <message name="JobReply">

                <part name="jobReply" element="jpt:JobReply"/>

  </message>

  <portType name="JobProcessor">

                <operation name="processJob">

                  <input message="jp:Job" 
wsaw:Action="http://examples.home.dev/jobprocessor/processJob"/>

                </operation>

  </portType>

  <portType name="JobProcessorNotify">

                <operation name="replyFinishedJob">

                  <input message="jp:JobReply" 
wsaw:Action="http://examples.home.dev/jobprocessor/replyFinishedJob"/>

                </operation>

  </portType>

  <binding name="JobProcessor" type="jp:JobProcessor">

                <wsaw:UsingAddressing wsdl:required="true"/>

                <soap:binding style="document"

                                                                  
transport="http://schemas.xmlsoap.org/soap/http"/>

                <operation name="processJob">

                  <soap:operation style="document"

                                                                                
  soapAction="http://examples.home.dev/jobprocessor/processJob"/>

                  <input>

                                <soap:body use="literal" parts="job"/>

                  </input>

                </operation>

  </binding>

  <binding name="JobProcessorNotify" type="jp:JobProcessorNotify">



                <wsaw:UsingAddressing required="true"/>

                <soap:binding style="document"

                                                                  
transport="http://schemas.xmlsoap.org/soap/http"/>

                <operation name="replyFinishedJob">

                  <soap:operation style="document"

                                                                                
  soapAction="http://examples.home.dev/jobprocessor/replyFinishedJob"/>

                  <input>

                                <soap:body use="literal" parts="jobReply"/>

                  </input>

                </operation>

  </binding>

  <service name="JobProcessor">

                <port name="jobProcessor" binding="jp:JobProcessor">

                  <soap:address 
location="http://localhost:8086/AsynchronousWebService/jobProcessor"/>

                </port>

  </service>

  <service name="JobProcessorNotify">

                <port name="jobProcessorNotify" binding="jp:JobProcessorNotify">

                  <soap:address 
location="http://localhost:8086/ode/processes/JobProcessorNotify.jobProcessorNotify"/>

                </port>

  </service>



    <bpws:property name="Id" type="xsd:string" />



     <bpws:propertyAlias propertyName="jp:Id" messageType="jp:Job" part="job">

      <bpws:query 
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">

                jpt:jobId

      </bpws:query>

    </bpws:propertyAlias>



   <bpws:propertyAlias propertyName="jp:Id" messageType="jp:JobReply" 
part="jobReply">

      <bpws:query 
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">

                jpt:jobId

      </bpws:query>

   </bpws:propertyAlias>



       <plnk:partnerLinkType name="JobProcessorLinkType">

        <plnk:role name="JobProcessorRole" portType="jp:JobProcessor"/>

        <plnk:role name="NotifyJobCompletionPortTypeRole" 
portType="jp:JobProcessorNotify"/>

    </plnk:partnerLinkType>

</definitions>







Regards,

Vinay



-----Original Message-----
From: Sathwik B P [mailto:[email protected]]
Sent: Tuesday, June 09, 2015 10:48 PM
To: [email protected]
Subject: Re: FW: Issue with asynchronous web service call in ODE 1.3.6



You probably have improper correlations. Hence the incoming message cannot be 
routed.



On Tue, Jun 9, 2015 at 8:38 PM, Vinay Vijay 
<[email protected]<mailto:[email protected]>> wrote:



> Hi,

>                 I am trying to deploy a process invoking an

> asynchronous service in ODE 1.3.6. The process first calls a service

> which gives a random number which I use as correlator for the next

> asynchronous partner link call. The second partner link call invokes a

> web service which waits for anywhere between 5 to 10 seconds randomly

> and then calls back the process.

>

>                 When I run the process all the calls and callbacks are

> happening, but the process is not completing. In the BPEL_EVENT table

> the last event is ActivityStartEvent for the Receive activity. There

> is no activity completion event for the Receive, nor is a process

> completion event present. When I inspect the ode logs I am getting the

> following debug

> messages:

>

> 268024 [ODEServer-3] DEBUG

> org.apache.ode.bpel.engine.BpelRuntimeContextImpl  - MatcherEvent handling:

> correlatorId=JobProcessor.replyFinishedJob, ckeySet=[{CorrelationKey

> setId=JobCorrelator, values=[AsynPrc_283316883906124]}]

> 268055 [ODEServer-3] DEBUG

> org.apache.ode.bpel.engine.BpelRuntimeContextImpl  - MatcherEvent handling:

> nothing to do, no matching message in DB

>

>                 When I go to the ode source code, in

> BpelRuntimeContextImpl.matcherEvent(), the MessageExchangeDAO is

> coming as null for the CorrelationKeySet passed. This means there is

> no message exchange record for the CorrelationKeySet passed. What is

> it am I missing which is causing this piece of data not to be there in 
> database?

>

>                Any help is greatly appreciated.

>

> Regards,

> Vinay

>

Reply via email to