ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From George <george.n...@gmx.net>
Subject Re: Unexpected behaviour working with correlation
Date Tue, 09 Aug 2011 07:42:57 GMT
There it goes.

TA

On 09/08/2011 7:14, Waruna Ranasinghe wrote:
> Hi Jorge,
>
> Will you be able to attach your whole process as a zip file?
>
> Thanks,
> Waruna
>
> On 9 August 2011 05:11, George<george.news@gmx.net>  wrote:
>
>> Hi again,
>>
>> More info I forgot to mention.
>>
>> A way to replicate the problem is:
>> 1) Call the "process" function for the BPEL process with customerID="jo"
>> 2) Call the "seller" fuction for the BPEL process with customerID="jo"
>> 3) Repeat the call to the "seller" fuction for the BPEL process with
>> customerID="jo".
>>
>> After step 3 I cannot use customerID="jo" any longer, as it seems that the
>> system got corrupted. The BPEL process point of entrance is not the seller
>> but the process function. How is it possible that happens?
>>
>> On 08/08/2011 18:55, George wrote:
>>> Hi all,
>>>
>>> I have created a simple project to test the correlation in BPEL, but I've
>> got an unexpected behaviour (or at least I think it is). Let's show you the
>> example while trying to explain the output.
>>>
>>> The process is quite simple, as it is a receive - assign - invoke - reply
>> - Pick - invoke1 or invoke2. The idea is that the receive initialize the
>> correlation set or variable property, and then in the pick it is used to
>> continue the same process.
>>>
>>> I call the BPEL WS using the process method and customerID "jo". Then I
>> check in ODE management web and the process is active and it has returned
>> the expected value from the reply. So I guess it is waiting at the pick
>> function. Now I call the BPEL WS with the seller function and the process is
>> completed. Till now, no problem and everything as expected.
>>>
>>> I repeat the process with other different customerIDs and there is no
>> problem.
>>>
>>> However if I repeat a call to BPEL WS using the process method and
>> customerID "jo" (the same as the first call), I get the answer from the
>> reply but when I check the process state the ODE management web shows the
>> project is completed. Why is it not waiting at the pick and therefore
>> active? If I call the seller function to trigger the pick it seems that
>> nothing happens as far as the ODE log display (I have DEBUG enabled).
>>>
>>> Any idea? This is the normal behaviour? Could you further explain the
>> correlation behaviour? Does it mean that once you have a correlation
>> variable set to a value it is keep in the internal database for the whole
>> life of the server? How do you can set the correlation set to "off"?
>>>
>>> TA.
>>> Jorge
>>>
>>>
>>> Here is main code for the correlation example:
>>>
>>> <vprop:property name="customerID" type="xsd:string"/>
>>>
>>> <vprop:propertyAlias propertyName="tns:customerID"
>>>     messageType="tns:BPEL_MultipleRequestMessage"
>>>     part="payload">
>>>     <vprop:query>tns:input</vprop:query>
>>> </vprop:propertyAlias>
>>>
>>> <vprop:propertyAlias propertyName="tns:customerID"
>>>     messageType="tns:sellerRequestMessage"
>>>     part="parameters">
>>>     <vprop:query>tns:input</vprop:query>
>>> </vprop:propertyAlias>
>>>
>>> <vprop:propertyAlias propertyName="tns:customerID"
>>>     messageType="tns:buyerRequestMessage"
>>>     part="parameters">
>>>     <vprop:query>tns:input</vprop:query>
>>> </vprop:propertyAlias>
>>>
>>>
>>> ...........
>>>
>>>
>>> <bpel:receive name="receiveProcess" partnerLink="client"
>>>     portType="tns:BPEL_Multiple" operation="process" variable="input"
>>>     createInstance="yes">
>>>     <bpel:correlations>
>>>       <bpel:correlation set="order" initiate="yes" />
>>>     </bpel:correlations>
>>> </bpel:receive>
>>>
>>> ..........
>>>
>>>
>>> <bpel:pick name="PickToStopForAWhile">
>>>     <!-- Seller -->
>>>     <bpel:onMessage partnerLink="client"
>>>       portType="tns:BPEL_Multiple"
>>>       operation="seller"
>>>       variable="inputSeller">
>>>       <bpel:correlations>
>>>                 <bpel:correlation set="order" initiate="no"/>
>>>       </bpel:correlations>
>>>       <bpel:sequence name="Call1">
>>>         <bpel:invoke name="InvokeServiceEmulator"
>> partnerLink="ServiceEmulatorPL"
>>>           operation="setUser" portType="srvemu:ServiceEmulatorPortType"
>>>           inputVariable="ServiceEmulatorPLSetUserRequest">
>>>         </bpel:invoke>
>>>       </bpel:sequence>
>>>     </bpel:onMessage>
>>>     <!-- Buyer -->
>>>     <bpel:onMessage partnerLink="client"
>>>       portType="tns:BPEL_Multiple"
>>>       operation="buyer"
>>>       variable="inputBuyer">
>>>       <bpel:correlations>
>>>         <bpel:correlation set="order" initiate="no" />
>>>       </bpel:correlations>
>>>       <bpel:sequence name="Call2">
>>>         <bpel:invoke name="InvokeCalculator" partnerLink="CalculatorPL"
>>>           operation="Add" portType="calc:CalculatorPortType"
>> inputVariable="CalculatorPLAddRequest"
>>>           outputVariable="CalculatorPLAddResponse">
>>>         </bpel:invoke>
>>>       </bpel:sequence>
>>>     </bpel:onMessage>
>>> </bpel:pick>
>>>
>>
>>
>
>


Mime
View raw message