This discussion is archived
13 Replies Latest reply: Aug 8, 2012 1:52 AM by Arik RSS

WS-Addressing & Correlation in BPEL

930186 Newbie
Currently Being Moderated
I have read about both WS-Addressing & Correlation concepts in BPEL to handle correlation between the clients of the invoked process.

WS-Addressing : automatically manages the correlation between the clients of the invoked process. (user need not worry to about it :))
Correlation : This we need to handle manually by declaring correlation sets using the unique value we get from the request XML.

I need correlation concept explanation briefly. And how it is achieved ?? and what for condition it is used ?? and some pointers ?? (these questions may be am not sure)

Scenario 1 : Invoking & Receiving Asynchronous BPEL process from the Asynchronous BPEL process(exposed as soap web service) -> this works :)
Scenario 2 : Invoking & Receiving Asynchronous BPEL process from the Synchronous BPEL process(exposed as soap web service) -> this doesn't :(

while executing the scenario 1, this works without any error and I can investigate the flow trace and I am getting the desired output
But while invoking the scenario 2 results in fault saying

Non Recoverable System Fault :
Waiting for response has timed out. The conversation id is null. Please check the process instance for detail.

Thanks.
  • 1. Re: WS-Addressing & Correlation in BPEL
    Arik Expert
    Currently Being Moderated
    Hi,

    Can you please have a better description for Scenario 2?

    Thanks
    Arik
  • 2. Re: WS-Addressing & Correlation in BPEL
    930186 Newbie
    Currently Being Moderated
    Scenario :

    step 1) Create 2-way Synchronous BPEL Process

    step 2) Within this process add a scope, in that scope add four activity namely
    Assign_Request_for_Asynch_Invoke,
    Invoke_Asynchronous_bpel_with_above_request,
    Receive_Asynchronous_bpel_response
    Assign_Response_from_Asynch_Receive

    step 3) Create 2-way Asynchronous BPEL Process
    step 4) Add assign_to_process_request_to_response


    Now, when I invoke synchronous bpel process wither through em console or through soap ui client, then i get error as mentioned above in my post.

    Hope, I have cleared the scenario

    Thanks Arik for your reply.
  • 3. Re: WS-Addressing & Correlation in BPEL
    Arik Expert
    Currently Being Moderated
    In your second scenario – did you call a one-way bpel process or an Asynch' bpel process?
  • 4. Re: WS-Addressing & Correlation in BPEL
    930186 Newbie
    Currently Being Moderated
    Arik,
    Both Synchronous & Asynchronous BPEL process are two-way for Scenario 2

    Scenario 2
    Synchronous bpel process exposed as a web service is a 2-way bpel process
    Similarly, Asynchronous bpel process is a 2-way bpel process

    Synchronous bpel process invoke Asynchronous bpel process and also have a receive node to receive response back.

    Hope, I have cleared the scenario.
  • 5. Re: WS-Addressing & Correlation in BPEL
    Arik Expert
    Currently Being Moderated
    Timeout is a known issue when using massages invocation. The system default for timeout is 300s'.
    Clearly this can be configured.
    If you are calling an asynch' bpel process, you shouldn't have any problem receiving a response (using receive activity).
    The thing is - if your callee process(asynch'), perform some actions (call other services etc..), that takes some time, you might end up with timeout exception.
    So, the question is – is it possible your actions in the callee process increase the process duration?

    Arik
  • 6. Re: WS-Addressing & Correlation in BPEL
    930186 Newbie
    Currently Being Moderated
    Arik,

    Let me explain more clear the scenario,

    my exposed synchronous bpel process(2-way) expects the result back from the Asynchronous bpel process(2-way).
    And in my synchronous bpel process, I have invoke activity to invoke asynchbpel_process_ and following it a receive activity to receive responce from asynchbpel_process_

    If this scenario can be achieved, then illustrate the solution. It is ok to increase the process duration for my process.
    Illustrate how to achieve this scenario ?

    Thanks.
  • 7. Re: WS-Addressing & Correlation in BPEL
    Arik Expert
    Currently Being Moderated
    I really hope I understood your request.
    I've created and uploaded for you a very simple example (v11.1.1.5):
    https://www.dropbox.com/s/bljn95iwy4df757/SJScenario.rar
    Let me know if that is what you wanted.

    (I've used also a scope with catchAll activity for your other post)

    Arik
  • 8. Re: WS-Addressing & Correlation in BPEL
    930186 Newbie
    Currently Being Moderated
    Arik,
    Thanks exactly this is what I am looking for. your example works as expected. But I am doing something very similar, but getting the timeout exception.
    I have uploaded my example here https://www.dropbox.com/s/4d0gmj62ofmjcjx/MyScenarioApp.rar

    Examine my process, tell me where I am going wrong.

    Appreciate your help. Thanks
  • 9. Re: WS-Addressing & Correlation in BPEL
    Arik Expert
    Currently Being Moderated
    Well...you've added the oneWayDeliveryPolicy & transaction property.
    They are not needed here.
    Delete and run it.
    It will work for you now.

    Arik
  • 10. Re: WS-Addressing & Correlation in BPEL
    930186 Newbie
    Currently Being Moderated
    Thanks Arik. It worked :)

    But let me tell you, I haven't explicitly added these properties. Just added 2 bpel process & configured required activities inside the two bpel process. How exactly these properties get added into the composite.xml ?
  • 11. Re: WS-Addressing & Correlation in BPEL
    Arik Expert
    Currently Being Moderated
    Strange...try to create it again step by step and see if and when it happens.

    Arik
  • 12. Re: WS-Addressing & Correlation in BPEL
    930186 Newbie
    Currently Being Moderated
    Arik,
    I have noticed this carefully. My Jdeveloper version 11.1.1.6.0
    Whenever I drag a BPEL Process from component palette to components area, then in the process dialog apart from name, namespace, template, service name, input & output --> there is one more field is there called delivery.

    case 1: if i select Asynchronous BPEL Process, then delivery values are async.persist/async.cache/sync
    case 2: if i select Synchronous BPEL Process, then delivery changes to transaction having 2 values required/requiresNew
    case 3: if i select one way BPEL Process, then case 1

    for other templates, this is disabled.

    Please pour in your thoughts on this.

    Thanks.
  • 13. Re: WS-Addressing & Correlation in BPEL
    Arik Expert
    Currently Being Moderated
    Hi Again,

    The persistence policy(Delivery option) is very important when you build your orchestration process/s.
    When you call one bpel process to another, or receive a callback from the other, you should consider the policy/rules that those calls
    communicate. The policy you will choose will affect: the behavior of the processes, performance, stability, correct business flow etc…

    In 11.1.1.6 version, you have the option to choose those properties from the wizard.
    In lower versions(11.1.1.X) you can add those properties manually.

    Arik

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points