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
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/";
			xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype";
			xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
			xmlns:tns="http://slapen";
			xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop";
			xmlns:xsd="http://www.w3.org/2001/XMLSchema";
			name="geertishetmoe"
			targetNamespace="http://slapen";>
  
     
    <message name="operation1message">
    	<part name="s" type="xsd:long"/>
    </message>
    <message name="operation2message">
    	<part name="s" type="xsd:long"/>
    </message>

<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     PORT TYPE DEFINITION - A port type groups a set of operations into
     a logical service unit.
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->    

    <!-- portType implemented by the geertishetmoe BPEL process -->
  
    <portType name="geertishetmoe">
        <operation name="operation1">
            <input message="tns:operation1message" name="operation1Input"/>

        </operation>
        <operation name="operation2">
        	<input message="tns:operation2message" name="operation2Input"/>

        </operation>
    </portType>
  

<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     PARTNER LINK TYPE DEFINITION
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->    
    <plnk:partnerLinkType name="geertishetmoe">
        <plnk:role name="geertishetmoeProvider" portType="tns:geertishetmoe"/>
    </plnk:partnerLinkType>
    
    <binding name="NewBinding" type="tns:geertishetmoe">

    	<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    	<operation name="operation1">

    		<soap:operation soapAction="http://slapen/operation1"/>
    		<input name="operation1Input">

    			<soap:body namespace="http://slapen"; use="literal"/>
    		</input>

    	</operation>
    	<operation name="operation2">

    		<soap:operation soapAction="http://slapen/operation2"/>
    		<input name="operation2Input">

    			<soap:body namespace="http://slapen"; use="literal"/>
    		</input>
    	</operation>
    </binding>
    <service name="geertishetmoeservice">
    	<port binding="tns:NewBinding" name="NewPort">
    		<soap:address location="http://localhost:8080/ode/processes/geertishetmoeservice"/>
    	</port>
    </service>
    
     <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"/>
    
  	
</definitions>

Reply via email to