You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ode.apache.org by Chunyang YE <cy...@gmail.com> on 2010/07/01 18:13:34 UTC

Re: Ode correlation does not work with more than one element in the input message

I use ode1.3.4 and eclipse BPEL design plugin test web service explorer as
client.

2010/7/1 Chunyang YE <cy...@gmail.com>

> Hi,
>
> I developed a BPEL example to test the correlation, and got some strange
> result. I designed two receive activities in the process.
> When the message type for the second receive activity has only one element
> which is alias to the correlation token, the process works well.
>
> <element name="NewOperation">
>                 <complexType>
>                     <sequence>
>
>                         <!-- element name="in" type="string"></element-->
>                         <element name="correlator" type="string"></element>
>                     </sequence>
>                 </complexType>
>             </element>
>
> However, when i added new elements in addition to the correlation token in
> the message type, the process can't receive the input
> (that is, no response to the input from the client for the second receive,
> and the second receive is not executed according to the observed events from
> the ode server)
> Could anyone tell me what is wrong? Thanks a lot.
>
> The following is my bpel process and corresponding wsdl file.
>
> <!-- BPELExampleB BPEL Process [Generated by the Eclipse BPEL Designer]
> -->
> <!-- Date: Wed Jun 30 22:19:19 EDT 2010 -->
>
> <bpel:process name="BPELExampleB"
>          targetNamespace="
> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB"
>          suppressJoinFailure="yes"
>          xmlns:tns="
> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB"
>          xmlns:bpel="
> http://docs.oasis-open.org/wsbpel/2.0/process/executable"
>          >
>     <!-- Import the client WSDL -->
>     <bpel:import location="BPELExampleBArtifacts.wsdl" namespace="
> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB"
>             importType="http://schemas.xmlsoap.org/wsdl/" />
>
>     <!-- =================================================================
> -->
>     <!-- PARTNERLINKS
> -->
>     <!-- List of services participating in this BPEL process
> -->
>     <!-- =================================================================
> -->
>     <bpel:partnerLinks>
>         <!--
>         The 'client' role represents the requester of this service. It is
>         used for callback. The location and correlation information
> associated
>         with the client role are automatically set using WS-Addressing.
>         -->
>         <bpel:partnerLink name="client"
>                      partnerLinkType="tns:BPELExampleB"
>                      myRole="BPELExampleBProvider"
>                      />
>     </bpel:partnerLinks>
>
>     <!-- =================================================================
> -->
>     <!-- VARIABLES
> -->
>     <!-- List of messages and XML documents used within this BPEL process
> -->
>     <!-- =================================================================
> -->
>     <bpel:variables>
>         <!-- Reference to the message passed as input during initiation -->
>         <bpel:variable name="input"
>
> messageType="tns:BPELExampleBRequestMessage"/>
>
>
>         <bpel:variable name="clientRequest"
> messageType="tns:NewOperationRequest"></bpel:variable>
>     </bpel:variables>
>
>      <bpel:correlationSets>
>         <bpel:correlationSet name="CorrelationSetToken"
> properties="tns:token"/>
>     </bpel:correlationSets>
>
>     <!-- =================================================================
> -->
>     <!-- ORCHESTRATION LOGIC
> -->
>     <!-- Set of activities coordinating the flow of messages across the
> -->
>     <!-- services integrated within this business process
> -->
>     <!-- =================================================================
> -->
>     <bpel:sequence name="main">
>
>         <!-- Receive input from requestor.
>              Note: This maps to operation defined in BPELExampleB.wsdl
>              -->
>         <bpel:receive name="receiveInput" partnerLink="client"
>                  portType="tns:BPELExampleB"
>                  operation="initiate" variable="input"
>                  createInstance="yes">
>             <bpel:correlations>
>                 <bpel:correlation initiate="yes"
> set="CorrelationSetToken"/>
>             </bpel:correlations>
>         </bpel:receive>
>
>         <!-- Asynchronous callback to the requester.
>              Note: the callback location and correlation id is
> transparently handled
>              using WS-addressing.
>              -->
>         <bpel:receive name="Receive" partnerLink="client"
> operation="NewOperation" portType="tns:BPELExampleB"
> variable="clientRequest">
>             <bpel:correlations>
>                 <bpel:correlation initiate="no" set="CorrelationSetToken"/>
>             </bpel:correlations>
>         </bpel:receive>
>     </bpel:sequence>
> </bpel:process>
>
>
> <?xml version="1.0"?>
> <definitions name="BPELExampleB"
>         targetNamespace="
> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB"
>         xmlns:tns="http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB
> "
>         xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
>         xmlns="http://schemas.xmlsoap.org/wsdl/"
>         xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/varprop"
>         xmlns:p="http://www.w3.org/2001/XMLSchema" xmlns:soap="
> http://schemas.xmlsoap.org/wsdl/soap/">
>
> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>      TYPE DEFINITION - List of services participating in this BPEL process
>      The default output of the BPEL designer uses strings as input and
>      output to the BPEL Process. But you can define or import any XML
>      Schema type and us them as part of the message types.
>      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> -->
>
>     <bpws:property name="token" type="p:string"/>
>     <bpws:propertyAlias propertyName="tns:token"
> messageType="tns:BPELExampleBRequestMessage" part="payload"
>           query="/tns:BPELExampleBRequest/tns:correlator"/>
>     <bpws:propertyAlias propertyName="tns:token"
> messageType="tns:NewOperationRequest" part="parameters"
>           query="/tns:NewOperation/tns:correlator"/>
>
>     <types>
>         <schema attributeFormDefault="unqualified"
>                 elementFormDefault="qualified"
>                 targetNamespace="
> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB"
>                 xmlns="http://www.w3.org/2001/XMLSchema"
>                 >
>
>             <element name="BPELExampleBRequest">
>                 <complexType>
>                     <sequence>
>
>                         <element name="correlator" type="string"></element>
>                     </sequence>
>                 </complexType>
>             </element>
>
>             <element name="BPELExampleBResponse">
>                 <complexType>
>                     <sequence>
>                         <element name="result" type="string"/>
>                     </sequence>
>                 </complexType>
>             </element>
>
>             <element name="NewOperation">
>                 <complexType>
>                     <sequence>
>
>                         <!-- element name="in" type="string"></element-->
>                         <element name="correlator" type="string"></element>
>                     </sequence>
>                 </complexType>
>             </element>
>
>         </schema>
>     </types>
>
> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>      MESSAGE TYPE DEFINITION - Definition of the message types used as
>      part of the port type defintions
>      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> -->
>     <message name="BPELExampleBRequestMessage">
>         <part name="payload" element="tns:BPELExampleBRequest"/>
>     </message>
>
>     <message name="NewOperationRequest">
>         <part name="parameters" element="tns:NewOperation"></part>
>     </message>
>
> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>      PORT TYPE DEFINITION - A port type groups a set of operations into
>      a logical service unit.
>      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> -->
>     <!-- portType implemented by the BPELExampleB BPEL process -->
>
>     <portType name="BPELExampleB">
>         <operation name="initiate">
>             <input message="tns:BPELExampleBRequestMessage"/>
>         </operation>
>         <operation name="NewOperation">
>             <input message="tns:NewOperationRequest"></input>
>
>         </operation>
>     </portType>
>
>
>
>
> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>      PARTNER LINK TYPE DEFINITION
>          the BPELExampleB partnerLinkType binds the provider and
>          requester portType into an asynchronous conversation.
>      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> -->
>     <plnk:partnerLinkType name="BPELExampleB">
>         <plnk:role name="BPELExampleBProvider"
> portType="tns:BPELExampleB"/>
>     </plnk:partnerLinkType>
>     <binding name="BPELExampleBBinding" type="tns:BPELExampleB">
>         <soap:binding style="document"
>             transport="http://schemas.xmlsoap.org/soap/http" />
>         <operation name="initiate">
>             <soap:operation
>                 soapAction="
> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB/initiate" />
>             <input>
>                 <soap:body use="literal" />
>             </input>
>         </operation>
>         <operation name="NewOperation">
>             <soap:operation
>                 soapAction="
> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB/NewOperation" />
>             <input>
>                 <soap:body use="literal" />
>             </input>
>         </operation>
>     </binding>
>     <service name="BPELExampleB">
>         <port name="BPELExampleB" binding="tns:BPELExampleBBinding">
>             <soap:address location="
> http://localhost:8080/ode/processes/BPELExampleB" />
>         </port>
>     </service>
> </definitions>
>
>
>

Re: Ode correlation does not work with more than one element in the input message

Posted by Chunyang YE <cy...@gmail.com>.
Hi, anyone can help to solve this problem?

A simple BPEL process with two receive activites (in sequance) and a
correlation set to correlate these two receive activties.

It turns out that if the messages of these two receive activities have the
same number of elements, it works; if the number of elements in the message
of these two receive activities is different, the second receive activity
can't receive the message and the process is blocked there.

The codes are attached in previous emails.

I use ODE1.3.4.

Thanks.



2010/7/1 Chunyang YE <cy...@gmail.com>

> I changed the message type and found that if the message types for the two
> receive activities are different (different message xml structure), it fails
> to trigger the second receive.
>
> If both message types have the same xml structure,  it works.
>
> for example,
>
>
> <element name="BPELExampleBRequest">
>                 <complexType>
>                     <sequence>
>                         <element name="test" type="int"></element>
>
>                          <element name="correlator"
> type="string"></element>
>                     </sequence>
>                 </complexType>
>             </element>
>
>
>             <element name="NewOperation">
>                 <complexType>
>                     <sequence>
>                         <element name="in" type="int"></element>
>
>                         <element name="correlator" type="string"></element>
>                         <element name="test2" type="string"></element>
>                     </sequence>
>                 </complexType>
>             </element>
> THis fails.
>
>
>
> <element name="BPELExampleBRequest">
>                 <complexType>
>                     <sequence>
>                         <element name="test" type="int"></element>
>
>                          <element name="correlator"
> type="string"></element>
>                     </sequence>
>                 </complexType>
>             </element>
>
>
>             <element name="NewOperation">
>                 <complexType>
>                     <sequence>
>                         <element name="in" type="int"></element>
>
>                         <element name="correlator" type="string"></element>
>                         <!--element name="test2" type="string"></element-->
>                     </sequence>
>                 </complexType>
>             </element>
>
> this works.
>
>
> 2010/7/1 Chunyang YE <cy...@gmail.com>
>
>> I use ode1.3.4 and eclipse BPEL design plugin test web service explorer as
>> client.
>>
>> 2010/7/1 Chunyang YE <cy...@gmail.com>
>>
>> Hi,
>>>
>>> I developed a BPEL example to test the correlation, and got some strange
>>> result. I designed two receive activities in the process.
>>> When the message type for the second receive activity has only one
>>> element which is alias to the correlation token, the process works well.
>>>
>>> <element name="NewOperation">
>>>                 <complexType>
>>>                     <sequence>
>>>
>>>                         <!-- element name="in" type="string"></element-->
>>>                         <element name="correlator"
>>> type="string"></element>
>>>                     </sequence>
>>>                 </complexType>
>>>             </element>
>>>
>>> However, when i added new elements in addition to the correlation token
>>> in the message type, the process can't receive the input
>>> (that is, no response to the input from the client for the second
>>> receive, and the second receive is not executed according to the observed
>>> events from the ode server)
>>> Could anyone tell me what is wrong? Thanks a lot.
>>>
>>> The following is my bpel process and corresponding wsdl file.
>>>
>>> <!-- BPELExampleB BPEL Process [Generated by the Eclipse BPEL Designer]
>>> -->
>>> <!-- Date: Wed Jun 30 22:19:19 EDT 2010 -->
>>>
>>> <bpel:process name="BPELExampleB"
>>>          targetNamespace="
>>> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB"
>>>          suppressJoinFailure="yes"
>>>          xmlns:tns="
>>> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB"
>>>          xmlns:bpel="
>>> http://docs.oasis-open.org/wsbpel/2.0/process/executable"
>>>          >
>>>     <!-- Import the client WSDL -->
>>>     <bpel:import location="BPELExampleBArtifacts.wsdl" namespace="
>>> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB"
>>>             importType="http://schemas.xmlsoap.org/wsdl/" />
>>>
>>>     <!--
>>> =================================================================
>>> -->
>>>     <!--
>>> PARTNERLINKS                                                      -->
>>>     <!-- List of services participating in this BPEL
>>> process               -->
>>>     <!--
>>> =================================================================
>>> -->
>>>     <bpel:partnerLinks>
>>>         <!--
>>>         The 'client' role represents the requester of this service. It is
>>>
>>>         used for callback. The location and correlation information
>>> associated
>>>         with the client role are automatically set using WS-Addressing.
>>>         -->
>>>         <bpel:partnerLink name="client"
>>>                      partnerLinkType="tns:BPELExampleB"
>>>                      myRole="BPELExampleBProvider"
>>>                      />
>>>     </bpel:partnerLinks>
>>>
>>>     <!--
>>> =================================================================
>>> -->
>>>     <!--
>>> VARIABLES                                                         -->
>>>     <!-- List of messages and XML documents used within this BPEL
>>> process  -->
>>>     <!--
>>> =================================================================
>>> -->
>>>     <bpel:variables>
>>>         <!-- Reference to the message passed as input during initiation
>>> -->
>>>         <bpel:variable name="input"
>>>
>>> messageType="tns:BPELExampleBRequestMessage"/>
>>>
>>>
>>>         <bpel:variable name="clientRequest"
>>> messageType="tns:NewOperationRequest"></bpel:variable>
>>>     </bpel:variables>
>>>
>>>      <bpel:correlationSets>
>>>         <bpel:correlationSet name="CorrelationSetToken"
>>> properties="tns:token"/>
>>>     </bpel:correlationSets>
>>>
>>>     <!--
>>> =================================================================
>>> -->
>>>     <!-- ORCHESTRATION
>>> LOGIC                                               -->
>>>     <!-- Set of activities coordinating the flow of messages across
>>> the    -->
>>>     <!-- services integrated within this business
>>> process                  -->
>>>     <!--
>>> =================================================================
>>> -->
>>>     <bpel:sequence name="main">
>>>
>>>         <!-- Receive input from requestor.
>>>              Note: This maps to operation defined in BPELExampleB.wsdl
>>>              -->
>>>         <bpel:receive name="receiveInput" partnerLink="client"
>>>                  portType="tns:BPELExampleB"
>>>                  operation="initiate" variable="input"
>>>                  createInstance="yes">
>>>             <bpel:correlations>
>>>                 <bpel:correlation initiate="yes"
>>> set="CorrelationSetToken"/>
>>>             </bpel:correlations>
>>>         </bpel:receive>
>>>
>>>         <!-- Asynchronous callback to the requester.
>>>              Note: the callback location and correlation id is
>>> transparently handled
>>>              using WS-addressing.
>>>              -->
>>>         <bpel:receive name="Receive" partnerLink="client"
>>> operation="NewOperation" portType="tns:BPELExampleB"
>>> variable="clientRequest">
>>>             <bpel:correlations>
>>>                 <bpel:correlation initiate="no"
>>> set="CorrelationSetToken"/>
>>>             </bpel:correlations>
>>>         </bpel:receive>
>>>     </bpel:sequence>
>>> </bpel:process>
>>>
>>>
>>> <?xml version="1.0"?>
>>> <definitions name="BPELExampleB"
>>>         targetNamespace="
>>> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB"
>>>         xmlns:tns="
>>> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB"
>>>         xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
>>>         xmlns="http://schemas.xmlsoap.org/wsdl/"
>>>         xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/varprop"
>>>         xmlns:p="http://www.w3.org/2001/XMLSchema" xmlns:soap="
>>> http://schemas.xmlsoap.org/wsdl/soap/">
>>>
>>> <!--
>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>      TYPE DEFINITION - List of services participating in this BPEL
>>> process
>>>      The default output of the BPEL designer uses strings as input and
>>>      output to the BPEL Process. But you can define or import any XML
>>>      Schema type and us them as part of the message types.
>>>
>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
>>>
>>>
>>>     <bpws:property name="token" type="p:string"/>
>>>     <bpws:propertyAlias propertyName="tns:token"
>>> messageType="tns:BPELExampleBRequestMessage" part="payload"
>>>           query="/tns:BPELExampleBRequest/tns:correlator"/>
>>>     <bpws:propertyAlias propertyName="tns:token"
>>> messageType="tns:NewOperationRequest" part="parameters"
>>>           query="/tns:NewOperation/tns:correlator"/>
>>>
>>>     <types>
>>>         <schema attributeFormDefault="unqualified"
>>>                 elementFormDefault="qualified"
>>>                 targetNamespace="
>>> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB"
>>>                 xmlns="http://www.w3.org/2001/XMLSchema"
>>>                 >
>>>
>>>             <element name="BPELExampleBRequest">
>>>                 <complexType>
>>>                     <sequence>
>>>
>>>                         <element name="correlator"
>>> type="string"></element>
>>>                     </sequence>
>>>                 </complexType>
>>>             </element>
>>>
>>>             <element name="BPELExampleBResponse">
>>>                 <complexType>
>>>                     <sequence>
>>>                         <element name="result" type="string"/>
>>>                     </sequence>
>>>                 </complexType>
>>>             </element>
>>>
>>>             <element name="NewOperation">
>>>                 <complexType>
>>>                     <sequence>
>>>
>>>                         <!-- element name="in" type="string"></element-->
>>>                         <element name="correlator"
>>> type="string"></element>
>>>                     </sequence>
>>>                 </complexType>
>>>             </element>
>>>
>>>         </schema>
>>>     </types>
>>>
>>> <!--
>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>      MESSAGE TYPE DEFINITION - Definition of the message types used as
>>>      part of the port type defintions
>>>
>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
>>>
>>>     <message name="BPELExampleBRequestMessage">
>>>         <part name="payload" element="tns:BPELExampleBRequest"/>
>>>     </message>
>>>
>>>     <message name="NewOperationRequest">
>>>         <part name="parameters" element="tns:NewOperation"></part>
>>>     </message>
>>>
>>> <!--
>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>      PORT TYPE DEFINITION - A port type groups a set of operations into
>>>      a logical service unit.
>>>
>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
>>>     <!-- portType implemented by the BPELExampleB BPEL process -->
>>>
>>>     <portType name="BPELExampleB">
>>>         <operation name="initiate">
>>>             <input message="tns:BPELExampleBRequestMessage"/>
>>>         </operation>
>>>         <operation name="NewOperation">
>>>             <input message="tns:NewOperationRequest"></input>
>>>
>>>         </operation>
>>>     </portType>
>>>
>>>
>>>
>>>
>>> <!--
>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>      PARTNER LINK TYPE DEFINITION
>>>          the BPELExampleB partnerLinkType binds the provider and
>>>          requester portType into an asynchronous conversation.
>>>
>>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
>>>
>>>     <plnk:partnerLinkType name="BPELExampleB">
>>>         <plnk:role name="BPELExampleBProvider"
>>> portType="tns:BPELExampleB"/>
>>>     </plnk:partnerLinkType>
>>>     <binding name="BPELExampleBBinding" type="tns:BPELExampleB">
>>>         <soap:binding style="document"
>>>             transport="http://schemas.xmlsoap.org/soap/http" />
>>>         <operation name="initiate">
>>>             <soap:operation
>>>                 soapAction="
>>> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB/initiate" />
>>>             <input>
>>>                 <soap:body use="literal" />
>>>             </input>
>>>         </operation>
>>>         <operation name="NewOperation">
>>>             <soap:operation
>>>                 soapAction="
>>> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB/NewOperation" />
>>>             <input>
>>>                 <soap:body use="literal" />
>>>             </input>
>>>         </operation>
>>>     </binding>
>>>     <service name="BPELExampleB">
>>>         <port name="BPELExampleB" binding="tns:BPELExampleBBinding">
>>>             <soap:address location="
>>> http://localhost:8080/ode/processes/BPELExampleB" />
>>>         </port>
>>>     </service>
>>> </definitions>
>>>
>>>
>>>
>>
>

Re: Ode correlation does not work with more than one element in the input message

Posted by Chunyang YE <cy...@gmail.com>.
I changed the message type and found that if the message types for the two
receive activities are different (different message xml structure), it fails
to trigger the second receive.

If both message types have the same xml structure,  it works.

for example,

<element name="BPELExampleBRequest">
                <complexType>
                    <sequence>
                        <element name="test" type="int"></element>
                         <element name="correlator" type="string"></element>
                    </sequence>
                </complexType>
            </element>


            <element name="NewOperation">
                <complexType>
                    <sequence>
                        <element name="in" type="int"></element>
                        <element name="correlator" type="string"></element>
                        <element name="test2" type="string"></element>
                    </sequence>
                </complexType>
            </element>
THis fails.


<element name="BPELExampleBRequest">
                <complexType>
                    <sequence>
                        <element name="test" type="int"></element>
                         <element name="correlator" type="string"></element>
                    </sequence>
                </complexType>
            </element>


            <element name="NewOperation">
                <complexType>
                    <sequence>
                        <element name="in" type="int"></element>
                        <element name="correlator" type="string"></element>
                        <!--element name="test2" type="string"></element-->
                    </sequence>
                </complexType>
            </element>

this works.

2010/7/1 Chunyang YE <cy...@gmail.com>

> I use ode1.3.4 and eclipse BPEL design plugin test web service explorer as
> client.
>
> 2010/7/1 Chunyang YE <cy...@gmail.com>
>
> Hi,
>>
>> I developed a BPEL example to test the correlation, and got some strange
>> result. I designed two receive activities in the process.
>> When the message type for the second receive activity has only one element
>> which is alias to the correlation token, the process works well.
>>
>> <element name="NewOperation">
>>                 <complexType>
>>                     <sequence>
>>
>>                         <!-- element name="in" type="string"></element-->
>>                         <element name="correlator"
>> type="string"></element>
>>                     </sequence>
>>                 </complexType>
>>             </element>
>>
>> However, when i added new elements in addition to the correlation token in
>> the message type, the process can't receive the input
>> (that is, no response to the input from the client for the second receive,
>> and the second receive is not executed according to the observed events from
>> the ode server)
>> Could anyone tell me what is wrong? Thanks a lot.
>>
>> The following is my bpel process and corresponding wsdl file.
>>
>> <!-- BPELExampleB BPEL Process [Generated by the Eclipse BPEL Designer]
>> -->
>> <!-- Date: Wed Jun 30 22:19:19 EDT 2010 -->
>>
>> <bpel:process name="BPELExampleB"
>>          targetNamespace="
>> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB"
>>          suppressJoinFailure="yes"
>>          xmlns:tns="
>> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB"
>>          xmlns:bpel="
>> http://docs.oasis-open.org/wsbpel/2.0/process/executable"
>>          >
>>     <!-- Import the client WSDL -->
>>     <bpel:import location="BPELExampleBArtifacts.wsdl" namespace="
>> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB"
>>             importType="http://schemas.xmlsoap.org/wsdl/" />
>>
>>     <!-- =================================================================
>> -->
>>     <!-- PARTNERLINKS
>> -->
>>     <!-- List of services participating in this BPEL process
>> -->
>>     <!-- =================================================================
>> -->
>>     <bpel:partnerLinks>
>>         <!--
>>         The 'client' role represents the requester of this service. It is
>>         used for callback. The location and correlation information
>> associated
>>         with the client role are automatically set using WS-Addressing.
>>         -->
>>         <bpel:partnerLink name="client"
>>                      partnerLinkType="tns:BPELExampleB"
>>                      myRole="BPELExampleBProvider"
>>                      />
>>     </bpel:partnerLinks>
>>
>>     <!-- =================================================================
>> -->
>>     <!-- VARIABLES
>> -->
>>     <!-- List of messages and XML documents used within this BPEL process
>> -->
>>     <!-- =================================================================
>> -->
>>     <bpel:variables>
>>         <!-- Reference to the message passed as input during initiation
>> -->
>>         <bpel:variable name="input"
>>
>> messageType="tns:BPELExampleBRequestMessage"/>
>>
>>
>>         <bpel:variable name="clientRequest"
>> messageType="tns:NewOperationRequest"></bpel:variable>
>>     </bpel:variables>
>>
>>      <bpel:correlationSets>
>>         <bpel:correlationSet name="CorrelationSetToken"
>> properties="tns:token"/>
>>     </bpel:correlationSets>
>>
>>     <!-- =================================================================
>> -->
>>     <!-- ORCHESTRATION LOGIC
>> -->
>>     <!-- Set of activities coordinating the flow of messages across the
>> -->
>>     <!-- services integrated within this business process
>> -->
>>     <!-- =================================================================
>> -->
>>     <bpel:sequence name="main">
>>
>>         <!-- Receive input from requestor.
>>              Note: This maps to operation defined in BPELExampleB.wsdl
>>              -->
>>         <bpel:receive name="receiveInput" partnerLink="client"
>>                  portType="tns:BPELExampleB"
>>                  operation="initiate" variable="input"
>>                  createInstance="yes">
>>             <bpel:correlations>
>>                 <bpel:correlation initiate="yes"
>> set="CorrelationSetToken"/>
>>             </bpel:correlations>
>>         </bpel:receive>
>>
>>         <!-- Asynchronous callback to the requester.
>>              Note: the callback location and correlation id is
>> transparently handled
>>              using WS-addressing.
>>              -->
>>         <bpel:receive name="Receive" partnerLink="client"
>> operation="NewOperation" portType="tns:BPELExampleB"
>> variable="clientRequest">
>>             <bpel:correlations>
>>                 <bpel:correlation initiate="no"
>> set="CorrelationSetToken"/>
>>             </bpel:correlations>
>>         </bpel:receive>
>>     </bpel:sequence>
>> </bpel:process>
>>
>>
>> <?xml version="1.0"?>
>> <definitions name="BPELExampleB"
>>         targetNamespace="
>> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB"
>>         xmlns:tns="
>> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB"
>>         xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
>>         xmlns="http://schemas.xmlsoap.org/wsdl/"
>>         xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/varprop"
>>         xmlns:p="http://www.w3.org/2001/XMLSchema" xmlns:soap="
>> http://schemas.xmlsoap.org/wsdl/soap/">
>>
>> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>      TYPE DEFINITION - List of services participating in this BPEL process
>>
>>      The default output of the BPEL designer uses strings as input and
>>      output to the BPEL Process. But you can define or import any XML
>>      Schema type and us them as part of the message types.
>>      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> -->
>>
>>     <bpws:property name="token" type="p:string"/>
>>     <bpws:propertyAlias propertyName="tns:token"
>> messageType="tns:BPELExampleBRequestMessage" part="payload"
>>           query="/tns:BPELExampleBRequest/tns:correlator"/>
>>     <bpws:propertyAlias propertyName="tns:token"
>> messageType="tns:NewOperationRequest" part="parameters"
>>           query="/tns:NewOperation/tns:correlator"/>
>>
>>     <types>
>>         <schema attributeFormDefault="unqualified"
>>                 elementFormDefault="qualified"
>>                 targetNamespace="
>> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB"
>>                 xmlns="http://www.w3.org/2001/XMLSchema"
>>                 >
>>
>>             <element name="BPELExampleBRequest">
>>                 <complexType>
>>                     <sequence>
>>
>>                         <element name="correlator"
>> type="string"></element>
>>                     </sequence>
>>                 </complexType>
>>             </element>
>>
>>             <element name="BPELExampleBResponse">
>>                 <complexType>
>>                     <sequence>
>>                         <element name="result" type="string"/>
>>                     </sequence>
>>                 </complexType>
>>             </element>
>>
>>             <element name="NewOperation">
>>                 <complexType>
>>                     <sequence>
>>
>>                         <!-- element name="in" type="string"></element-->
>>                         <element name="correlator"
>> type="string"></element>
>>                     </sequence>
>>                 </complexType>
>>             </element>
>>
>>         </schema>
>>     </types>
>>
>> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>      MESSAGE TYPE DEFINITION - Definition of the message types used as
>>      part of the port type defintions
>>      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> -->
>>     <message name="BPELExampleBRequestMessage">
>>         <part name="payload" element="tns:BPELExampleBRequest"/>
>>     </message>
>>
>>     <message name="NewOperationRequest">
>>         <part name="parameters" element="tns:NewOperation"></part>
>>     </message>
>>
>> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>      PORT TYPE DEFINITION - A port type groups a set of operations into
>>      a logical service unit.
>>      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> -->
>>     <!-- portType implemented by the BPELExampleB BPEL process -->
>>
>>     <portType name="BPELExampleB">
>>         <operation name="initiate">
>>             <input message="tns:BPELExampleBRequestMessage"/>
>>         </operation>
>>         <operation name="NewOperation">
>>             <input message="tns:NewOperationRequest"></input>
>>
>>         </operation>
>>     </portType>
>>
>>
>>
>>
>> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>      PARTNER LINK TYPE DEFINITION
>>          the BPELExampleB partnerLinkType binds the provider and
>>          requester portType into an asynchronous conversation.
>>      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> -->
>>     <plnk:partnerLinkType name="BPELExampleB">
>>         <plnk:role name="BPELExampleBProvider"
>> portType="tns:BPELExampleB"/>
>>     </plnk:partnerLinkType>
>>     <binding name="BPELExampleBBinding" type="tns:BPELExampleB">
>>         <soap:binding style="document"
>>             transport="http://schemas.xmlsoap.org/soap/http" />
>>         <operation name="initiate">
>>             <soap:operation
>>                 soapAction="
>> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB/initiate" />
>>             <input>
>>                 <soap:body use="literal" />
>>             </input>
>>         </operation>
>>         <operation name="NewOperation">
>>             <soap:operation
>>                 soapAction="
>> http://msrg.eecg.utoronto.ca/EventExposure/BPELExampleB/NewOperation" />
>>             <input>
>>                 <soap:body use="literal" />
>>             </input>
>>         </operation>
>>     </binding>
>>     <service name="BPELExampleB">
>>         <port name="BPELExampleB" binding="tns:BPELExampleBBinding">
>>             <soap:address location="
>> http://localhost:8080/ode/processes/BPELExampleB" />
>>         </port>
>>     </service>
>> </definitions>
>>
>>
>>
>