Forum Stats

  • 3,816,028 Users
  • 2,259,131 Discussions
  • 7,893,366 Comments

Discussions

Oracle SOA Policy framework with BPEL Catch

Sandeep Pachauri
Sandeep Pachauri Member Posts: 56
edited Nov 13, 2016 8:06AM in SOA Suite Discusssions

Hi All,After a lot study over internet i am not able to understand one simple question about Oracle SOA policy framework and BPEL catch (May be i am not understanding correctly or i am not able to find one clear note about it).

Suppose i have a catchAll block inside my BPEL process and on same time there is one fault policy defined where i had configured a remote exception to be retried.

Now question comes how this process will work.

1.When error will come, Will it be handled by BPEL catch only?

2.When error will come, will it be handled by only fault policy?

3.When error will come, will it be handled by both then how?

Please clear my this doubt, as i had this question in many job interviews.

Tagged:

Answers

  • HaniYS
    HaniYS Member Posts: 981 Bronze Badge
    edited Nov 8, 2016 5:17AM

    Its raise the high level (BPEL catchAll)

  • LBanzato
    LBanzato Member Posts: 16
    edited Nov 9, 2016 5:09AM

    Errors are only handled by the Fault Policy when they are not handled inside a catch/catchAll in BPEL.

    So if you have a catchAll, the Fault Policy will only be reached if inside the catchAll there is a Throw/Rethrow activity.

  • 2655429
    2655429 Member Posts: 228
    edited Nov 13, 2016 8:06AM

    Hi,

    Let's assume you have configured a fault policy to a composite for faults remote, binding and business failures.

    Also you have added a catchall block in the BPEL process.

    Now when an error occurs, server will first look for a fault policy. Since its in place, it will search if the fault is configured in the fault policy.

    On finding the configuration for the fault inside fault policy it will perform the actions written against a fault like retry, throw or a java callback.

    On completion of the above said actions, control will flow back to BPEL catchAll block and perform the set of actions defined in the BPEL process and reply to the calling process with error message and details.

    Now in case you do not have a fault policy in place, the control will flow to bpel process, perform the said actions inside catchAll and respond to the calling process.

    Hope the above helps!

    If you still have questions please feel free to shoot!

This discussion has been closed.