« Re-submit BPEL instances from BAM | Main | HTTP transport error: Message send failed: For input string “” »

BPEL Correlation within FlowN

I was struggling a bit today while testing a simple process that does a flowN and does simple BPEL correlation..

Failed to evaluate correlation query.
Failed to evaluate the correlationAlias query "/client:FlowNCorrelationDemoEvent/client:id" on the element "oracle.xml.parser.v2.XMLElement@283a35b"
Please check your BPEL/WSDL source to make sure that property alias is defined correctly.

    at com.collaxa.cube.engine.delivery.CorrelationProperty.setMessagePart(CorrelationProperty.java:85)
    at com.collaxa.cube.engine.delivery.DeliveryHelper.createCorrelationSet(DeliveryHelper.java:140)
    at com.collaxa.cube.engine.delivery.SOAPProtocolHandler.calculateCorrelations(SOAPProtocolHandler.java:751)
    at com.collaxa.cube.engine.delivery.SOAPProtocolHandler.receiveCallback(SOAPProtocolHandler.java:167)
    at com.collaxa.cube.engine.delivery.DeliveryService.receiveCallback(DeliveryService.java:462)
    at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.receiveCallback(CubeDeliveryBean.java:108)
    at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean_yt19iq_ELOImpl.receiveCallback(CubeDeliveryBean_yt19iq_ELOImpl.java:307)
    at com.collaxa.cube.engine.delivery.DeliveryHandler.continuePostAnyType(DeliveryHandler.java:429)
    at com.collaxa.cube.engine.delivery.DeliveryHandler.continuePost(DeliveryHandler.java:380)
    at com.collaxa.cube.engine.delivery.DeliveryHandler.post(DeliveryHandler.java:93)
    at com.collaxa.cube.ejb.impl.DeliveryBean.post(DeliveryBean.java:203)
    at com.collaxa.cube.ejb.impl.DeliveryBean.post(DeliveryBean.java:158)
    at com.collaxa.cube.ejb.impl.DeliveryBean_uhics8_EOImpl.post(DeliveryBean_uhics8_EOImpl.java:279)

It seems that the issue was occuring when I was initiating the process that contains a midprocess receive that is based off an operation in the same portType that contains the initiating operation for the service, through the BPEL console.

<portType name="FlowNCorrelationDemo">
    <operation name="initiate">
        <input message="client:FlowNCorrelationDemoRequestMessage"/>
    </operation>
    <operation name="callback">
        <input message="client:FlowNCorrelationDemoEventMessage"/>
    </operation>
</portType>

Things worked just fine when I created another BPEL process and invoked this main BPEL process from the former.

You can find the set of BPEL processes, together with a readme file at http://blogs.oracle.com/rammenon/FlowNCorrelationDemo.zip.

You can find all the information about the services that I have used in the sample at the above URL.

1. Initiate the client service. The client service invokes the main service with the given payload.

initiate_client

2. Review the flow of main service. It should be waiting for the callbacks from within the flowN.

main_service_waiting_for_callback

3. Invoke the ReaderService [the service that calls back the main service] with one callback message.

reader_service_invoke

4. Review the flow of the main service. It should have received one callback.

 

main_service_recvd_one_callback

 

5. Submit the remaining messages from the ReaderService to complete the entire flow. The main process should complete execution following this.

 

main_service_recvd_all_callbacks

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

About This Entry

This page contains a single entry from the blog posted on October 28, 2008 11:26 PM.

The previous post in this blog was Re-submit BPEL instances from BAM.

The next post in this blog is HTTP transport error: Message send failed: For input string “”.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type and Oracle