Oracle SOA, AIA BPEL ESB and OSB knowledge base

Friday, November 6, 2009

How to make two BPEL process participate in Transaction

- create a BPEL process (regardless sync or async)
- create 2 invokes to 2 distinct DB partnerlinks that perform each one an
insert into 2 distinct tables

make sure 2nd invoke fails for whatever reason
- expected result would be that the transaction (insert) for the 1st invoke
should be rolled-back as well

Solution:

Make sure the DB connection are XA enabled and not MCF.

1. To make Async one way bpel process invocations to participate
in single global transaction, set bpel.xml configurations property
"deliveryPersistPolicy" to "off.immediate" and
2. To force such BPEL processes to throw un-handled BPEL faults
back to invoking process, set bpel.xml configurations property
"handleTopLevelFault" to "false".
To make sure that the all the Async one-way BPEL processes are
participating in single global transaction and all the unhandled BPEL Faults
and exceptions are propagated back to the invoking process, configure the
following in configurations section of bpel.xml:

....
off.immediate
participate
false



Also refer:

http://www.oracle.com/technology/tech/soa/pdf/oracle-soa-suite-xa-rac-guide.pdf

No comments:

FEEDJIT Live Traffic Map

My Blog List