Wednesday, May 11, 2011

The Strange Flow activity in Bpel


As per the dev guide and docs , Flow activity is supposed to execute the sequences inside in multiple threads , however it doesnt actually behave that way normally.
Does Setting non Blocking invoke for partner links really helps ?

Here is a very good article about it and the summary by Luccas Jellema:
-----------------------------------------------------------------------------------------------------------------------------
Flow in BPEL (or at least Oracle BPEL PM) allows for parallel branches of activities. When executed, the branches in the Flow get their turn to execute the next step. Steps are not truly executed at the same time – which may be a blessing in disguise in situations where activities in various branches access the same variables. Even synchronous calls with nonBlockingInvoke set to true (however, I may have set that property in an incorrect way or TP4 of BPEL may not yet provide proper support for that property) block other activities from being processed. Only asynchronous activities such as Receive (wait for response to invoke of an Asynchronous Service) will allow other activities in other branches to be executed. I had expected this also to apply to Wait – but that turned out not be the case in TP4.

-----------------------------------------------------------------------------------------------------------------------------
It looks a peformance hit at first sight and a blessing in disguise at second .

No comments:

Post a Comment