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 Wed, 10 Aug 2011 12:53:12 GMT
Ok... I will try to do it asap.

I'm continuing testing the different stuff in BPEL so problably more 
issues are to come ;) till I get knowledge of the programming methology.

TA
Jorge

On 10/08/2011 13:37, Waruna Ranasinghe wrote:
> Hi,
>
> This looks like a bug to me.
> Please create a jira for this and attach the process to the jira as well.
>
> Generally, if a message comes in to the ODE without a instance to be routed,
> are stored so that the message will be eventually routed to the instance.
> There may be a bug in this functionality.
>
> Thanks,
> Waruna
> On 9 August 2011 19:42, George<george.news@gmx.net>  wrote:
>
>> 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="**ServiceEmulatorPLSetUserReques**t">
>>>>>         </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