Flow N is not Creating Parallel Processes when the bpel.xml nonBlockingInvoke=true Property is Used
(Doc ID 741198.1)
Last updated on MARCH 02, 2019
Applies to:Oracle(R) BPEL Process Manager 10g - Version 10.1.3.3 and later
Information in this document applies to any platform.
***Checked for relevance on 04-Apr-2011***
According with the documentation: Oracle Application Server Performance Guide 10g Release 3 (10.1.3.1.0) Part Number B28942-02, Chapter 7 Oracle Bpel Process Manager Performance Tuning, Section 7.2.5 nonBlockingInvoke Bpel Property, the nonBlockingInvoke Bpel Property improves the performance when executing multiple branches of a flow or flowN activity. If this property is set to true, a new thread is created by the process manager to perform each branch's invoke activity in a parallel way.
But, a Bpel process that contains a FlowN activity with 5 flows and it's using the bpel.xml nonBlockingInvoke=true property calls another Bpel process, is not creating parallel processes (a thread by flow/child process). It is expected to create 5 different threats at the same time (approx. 1 minute each one = 1 minute or so for all because they are in parallel), but Bpel process took about 3 minutes or so and only 2 Bpel child process ever run simultaneously. For example:
Main Bpel process (SleepBroker) calls a child process(SyncSleepService), the TreeFinder displayed the following information:
510007 - Instance #510007 of SyncSleepBroker SyncSleepBroker
510008 - Instance #510008 of SyncSleepService SyncSleepService
60.047s +4.125 -- t0
510009 - Instance #510009 of SyncSleepService SyncSleepService
60.078s +64.188 -- t1
510010 - Instance #510010 of SyncSleepService SyncSleepService
60.266s +64.188 -- t1
510011 - Instance #510011 of SyncSleepService SyncSleepService
60.062s +124.282 -- t2
510012 - Instance #510012 of SyncSleepService SyncSleepService
60.125s +124.282 -- t2
There are 3 main times t0, t1 and t2 that shows about processes are not executed in parallel way.
According with the documentation is expected that SyncSleepBroker Bpel process takes 70 s max (60seg or so in total for all parallel 5 child Bpel processes), but this is not the behavior in the Tree Finder.
Domain dspMaxThreads value is set to 35. There are 100 ReceiverThreads set for WorkerBean
and 30 ReceiverThreads for InvokerBean. The total dspMaxThreads across all domains is only 50.
Modify SyncMaxWaitTime (domain.xml), transaction-timeouts in transaction-manager.xml and
To view full details, sign in with your My Oracle Support account.
Don't have a My Oracle Support account? Click to get started!
In this Document