How to call a Partner Link in a different transaction on Oracle BPEL

You might have stumbled upon a situation where you need your BPEL process to commit some data even though there is fault somewhere in the process.

The thing here is Oracle BPEL will fit every part of your process in a single thread unless you strictly tell it not to. To do that you have to setup a property on your partner link called “idempotent” to “false”, this will tell your BPEL process this parter link must create a new transaction. The config is as follows:

If a fault occurs on this call however, the process itself will still be marked for rollback, in this case you need to invoke this partner link in a dedicated scope, catch the faults and treat them like the example below: