ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Waruna Ranasinghe <waruna...@gmail.com>
Subject Re: Unexpected behaviour working with correlation
Date Wed, 10 Aug 2011 11:37:59 GMT
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>
>>>>
>>>>
>>>
>>>
>>
>>
>


-- 
-----------------------------------------------------
Regards,
Waruna Ranasinghe

mob: 0724318285
blog: http://warunapw.blogspot.com
twitter: http://twitter.com/warunapww
http://lk.linkedin.com/in/waruna
www.facebook.com/waruna.ranasinghe

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message