Wednesday, May 11, 2011

Transactions - One way Bpel


The first thing that comes to mind while testing the transaction management using 1 way Bpel is its Asynchronous and Transaction will not span across process.

However there are good amount of properties that actually impacts this , here are the properties from Dev guide that will actually makes lot of difference :
http://docs.oracle.com/cd/E21764_01/integration.1111/e10224/soa_transactions.htm#CHDHEAIC

- onewayDeliveryPolicy=async.persist
- onewayDeliveryPolicy=sync and transaction=requiresNew
- onewayDeliveryPolicy=sync and transaction=required

These properties doesn't actually behaves as it seems from there name :
transaction=requiresNew , This works in combination with onewayDeliveryPolicy=sync if we want the callee BPEL to execute in a different Transaction and all the BPEL involved will work in there atomic boundaries.

We also got confused with other Partner link properties :
idempotent = false
startnonblockinginvoke = true

These will force the Callee bpel to start a new transaction but will force the caller to dehyderate and commit the transaction before calling the second process.


Bottom Line : Use these properties with caution and as per your requirement.

No comments:

Post a Comment