ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tammo van Lessen <tvanles...@gmail.com>
Subject Re: how can I use BPEL correlation mechanism?
Date Thu, 05 Aug 2010 15:18:49 GMT
Hi Geert,

ODE supports multiple instantiating activities, but of course they then
start a new instance and thus cannot make use of correlation. Also these
activities activities must be in a flow without links. Could you share
your bpel file so that I can understand what you're doing?

I don't really understand the session behaviour you're describing as ODE
does not maintain a session.

Thanks,
  Tammo

On 05.08.2010 14:09, Geert Monsieur wrote:
> Thanks for your swift reply!
> 
> Well, I just noticed that Apache ODE does not support multiple start
> activities...while this is the thing I would like to have...multiple start
> activities and the possibility to correlate upcoming messages.
> 
> Session difference:
> 
>  try { // Call Web Service Operation
>             slapen.Geertishetmoeservice service = new
> slapen.Geertishetmoeservice();
>             slapen.GeertishetmoeservicePortType port =
> service.getGeertishetmoeserviceSOAP12PortHttp();
>             // TODO initialize WS operation arguments here
>             long s = id;
>             port.operation1(s);
>             port.operation2(s);
>         } catch (Exception ex) {
>             // TODO handle custom exceptions here
>         }
> 
> versus
> 
>  try { // Call Web Service Operation
>             slapen.Geertishetmoeservice service = new
> slapen.Geertishetmoeservice();
>             slapen.GeertishetmoeservicePortType port =
> service.getGeertishetmoeserviceSOAP12PortHttp();
>             // TODO initialize WS operation arguments here
>             long s = id;
>             port.operation1(s);
>         } catch (Exception ex) {
>             // TODO handle custom exceptions here
>         }
> 
>  try { // Call Web Service Operation
>             slapen.Geertishetmoeservice service = new
> slapen.Geertishetmoeservice();
>             slapen.GeertishetmoeservicePortType port =
> service.getGeertishetmoeserviceSOAP12PortHttp();
>             // TODO initialize WS operation arguments here
>             long s = id;
>             port.operation2(s);
>         } catch (Exception ex) {
>             // TODO handle custom exceptions here
>         }
> 
> 
> Currently my process is not sending anything back, but I can detect the
> process' behavior using the http://localhost:8080/ode/instances.html and
> looking at which processes are active and completed.
> 
> cheers
> Geert
> 
> 
> On Thu, Aug 5, 2010 at 14:03, Tammo van Lessen <tvanlessen@gmail.com> wrote:
> 
>> Hi Geert,
>>
>> first, what do you mean by session? And is your process sending
>> something back to the client? Otherwise the client cannot be aware of a
>> potential implicit correlation token. These guys are proprietary btw, so
>> a client would need to explicitly extract them and include them in
>> follow up messages.
>>
>> While looking at your code, I think at least Receive2 should have set
>> createInstance to no. Maybe that solves already your issue.
>>
>> HTH,
>>  Tammo
>>
>> On 05.08.2010 13:47, Geert Monsieur wrote:
>>> Dear
>>>
>>> I'm deploying a simple BPEL process consisting of one flow which holds
>>> two receive activities (createInstance=yes). I defined a property to
>>> correlate message in the BPEL's WSDL file:
>>>
>>> <vprop:property name="testprop" type="xsd:long"/>
>>>      <vprop:propertyAlias messageType="tns:operation1message" part="s"
>>> propertyName="tns:testprop"/>
>>>      <vprop:propertyAlias messageType="tns:operation2message" part="s"
>>> propertyName="tns:testprop"/>
>>>
>>> In the BPEL process I've added a correlation set.
>>>
>>> <bpel:correlationSets>
>>>         <bpel:correlationSet name="CorrelationSet"
>>> properties="ns:testprop"></bpel:correlationSet>
>>> </bpel:correlationSets>
>>>
>>> This correlation set is used together with the two receive activities.
>>> initiate=join because I want the process instance to be continued
>>> (=ended) when two correlated messages are received by the BPEL engine.
>>>
>>> <bpel:receive name="Receive1" partnerLink="client"
>>> operation="operation1" portType="tns:geertishetmoe" variable="Variable1"
>>> createInstance="yes" xmlns:tns="http://slapen">
>>>                 <bpel:correlations>
>>>                     <bpel:correlation set="CorrelationSet"
>>> initiate="join"></bpel:correlation>
>>>                 </bpel:correlations>
>>> </bpel:receive>
>>>
>>> <bpel:receive name="Receive2" partnerLink="client"
>>> operation="operation2" portType="tns:geertishetmoe" variable="Variable2"
>>> createInstance="yes" xmlns:tns="http://slapen">
>>>                 <bpel:correlations>
>>>                     <bpel:correlation set="CorrelationSet"
>>> initiate="join"></bpel:correlation>
>>>                 </bpel:correlations>
>>> </bpel:receive>
>>>
>>> When using operation 1 and operation 2 in one unique session,
>>> correlation is working properly (probably because of the fact that ODE's
>>> implicit correlation mechanism relies on the session id?). However, when
>>> using operation 1 and operation 2 in two different sessions, ODE never
>>> manages to correlate two messages containing the same id.
>>>
>>> Does this mean I'm not able to use the BPEL correlation mechanism? Or
>>> what else can be wrong?
>>>
>>> Thanks in advance!
>>>
>>> In attachment you can find both my BPEL and corresponding WSDL file.
>>>
>>> Cheers
>>>
>>> Geert Monsieur
>>>
>>>
>>
>> --
>> Tammo van Lessen - http://www.taval.de
>>
> 

-- 
Tammo van Lessen - http://www.taval.de

Mime
View raw message