Using non-blocking service invocations in BPEL flows
We can reduce the latency of forked external service invocations in a BPEL process to the longest flow's execution time if we assign a thread to each flow, making it multi-threaded.
Getting ready
You'll need a composite loaded in JDeveloper to execute this recipe. This composite will need a flow that makes calls to a partner link external service.
How to do it...
Follow these steps to use non-blocking service invocations:
Right-click on each partner link that is being executed in your BPEL process flow, and select Edit.
In the Property tab, select the green + icon and add nonBlockingInvoke as a property name. In the Value box at the bottom, enter
true
.
How it works...
This recipe causes flow branches to be executed in parallel, with a new thread to be used for each branch flow.
For multiple service invocations that each have a high latency, this can greatly improve the total BPEL execution time. For example, assume we have a BPEL process that calls...