Flow N is not Creating Parallel Processes when the bpel.xml nonBlockingInvoke=true Property is Used (Doc ID 741198.1)

Last updated on APRIL 04, 2011

Applies to:

Oracle(R) BPEL Process Manager - Version: 10.1.3.3 and later   [Release: and later ]
Information in this document applies to any platform.
***Checked for relevance on 04-Apr-2011***

Symptoms

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:

Title Process ...
Duration Timeline
510007 - Instance #510007 of SyncSleepBroker SyncSleepBroker
184.438s +0.0
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.

Changes

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
orion-ejb-jar.xml.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms