Skip to Main Content

Integration

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Make a BPEL instance recoverable from a BPEL fault hanler?

346356Mar 15 2012 — edited Feb 26 2020
Hi

Does anybody know of a way to make a BPEL instance recoverable from a BPEL catch fault handler, e.g. using Java to programatically instruct the service engine to do the same thing as when using the fault management framework and fault policies to perform a human-intervention action?

A scenario where this would be very useful is when you have a transformation that fails, e.g. due to missing values in a DVM or XREF. Then, instead of having to do a resend from the source system, you would solve the issue in the affected DVM or XREF and then recover the instance.

Regards

Lars

Comments

Arik
Lars,

First of all you can use a Throw activity and put the value "replay" in the local part and "http://schemas.oracle.com/bpel/extension" in the namespace.
This will automatically bring you back to the begining of the scope (you must put it inside a scope).
Beside, you can use a human task and build a form with the file's record. This will allow you to fix the data you want and return it back to your process.

Riko
346356
Hi

Thanks for the reply. I triied this, but then thie instance gets stuck in an infinite loop, replaying the scope over and over, until someone fixes the problem with the DVM/XREF or whatever the real problem was. Am I missing something? Is there a way to pause execution of the replay scope?

Regards

Lars
Arik
Maybe I didn't understand you or the opposite :)
I will describe the flow:

1. create a scope
2. put inside first your wishful transaction (invoke for example)
3. catch a logical or system fault
4. send the data into Human Task (after creating a form as well). That will allow the user to change the data or approve or what ever
The correct data will then get back to your flow. Assign it to your invoke.
5. Use the Throw activity with replay option
That will call the transaction, only this time with the correct data

This is what you are doing? If so please explain the problem because I might not understood it

Riko
346356
Hi Riko

Actually I was looking for a way to solve the problem without involving Workflow and Human Tasks. I thought maybe you were referring to some kind of undocumented feature when you suggested to throw a Fault with local name 'replay', so when I tried, I never had any Human Task.

Although your solution would surely work, unfortunately I can't introduce Workflow to the customer at this point. We have hundreds of composites being developed under a tight schedule and I'm looking for a cheap and quick generic solution for this type of problems.

Anyway, thanks for your input!

Regards

Lars
Arik
I developed an EDI system with the option of correcting data via Human Task. Nice solution

Another option you can try is sending mail with attachmnet (your file), wait for a reply back with the correct file.
But I guess you have no time for developing this.

If anything will raise in my mine I will get back to you
DavidGaskell
Hi,

I don't know of an expiclit way of achieving this directly from within a BPEL Fault handler (e.g. Java API Calls). However an approach i have used is to be a little creative with the use of additional components. You could either place the xForm in a spearate component. Thay way be invoking from the parent component the invoke will receive the fault. Hence your fault framework and fault policies can configure the appropraite actions beacuse the fault occurs on an invoke. Another approach is if you did not want to move the transform is to call a spearate component that just throws a fault. This would have a similar approach as the invoke would receive the fault.

Regards Dave
1 - 6
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Apr 17 2012
Added on Mar 15 2012
6 comments
501 views