Search 800 + Posts

Jun 8, 2013

How to Manage Oracle Application Workflow Background Process Concurrent Program

In this post I will talk about concurrent program (CP)  "Workflow background process" , available in all the 11i and R12i releases.This is very critical and important program.

Purpose of this program is to progress any of the workflow activity which is in following status.

1.Deferred.
2.Time Out
3.Stuck.



This CP has 2 Required Parameters and 3 Optional Parameters.Majority of the customers schedule this CP at frequency any time between 3 minutes to 1 hour.



And most of the issues that I have heard about this CP are related to performance( Though another area where I heard complaint is this CP is not picking the lines that are in Deferred status , but I will not talk about that in this post , please check my other posts if you want to know more about  reason why this CP is not picking lines ) .As per issues related to performance my take is this is a a stable program and work as per expectations if scheduled to run in proper manners. Based on my discussions with many customers I noticed that customer encounters performance issues because of the way they scheduled this CP.

Parameters for this CP are .
1.Item Type
2.Minimum Threshold
3.Maximum Threshold
4.Process Deferred
5.Process Timeout
6.Process Stuck

# 1
If we don't specified "Item Type" parameters then workflow background process will execute all eligible workflow across all the Oracle Modules (like OM/WSH/PO/AP etc.....) and that might rmeans processing 100s of lines (based on your transaction volumes) and hence poor performance. I don't see any business justification to run this CP with "Item Type" as Blank.
Best recommendation are 

  • Schedule separate CP for every Oracle Module and don't leave item type BLANK
  • In case you really has need to run this program with Item type Blank then run that during off-peak hours ( in Night/week end)


#2
Do not run this CP with  Parameter

4.Process Deferred  = Yes
5.Process Timeout   = Yes
6.Process Stuck       = Yes

Why on earth someone want to process TOGETHER all the workflow that are  at
Deferred, timeout and Stuck activity , especially when you have scheduled this CP for every 5 - 20 minutes range.(These are possibility that some of the activities that are Time out for valid reason and should not be process after every 5 minutes), but with the above setting CP will pick all the lines for processing , though lines that are Timeout etc will not be processed till they reach their timeout thresh hold ( but still picked).

Best recommendation are 
It is good choice to process Deferred , Timeout & stuck activities separately .

Most of time business need is to process the Deferred records quite often and process Time Out/Stuck once -twice (at least not after every 5 minutes) in a Day

#3
Schedule this CP for a appropriate frequency. E.g if your volume load is to process 20,000-30,000 lines in 1 hour then it is good idea to schedule it after every 5 minutes .Scheduling it after every 1 hour with this much volume is not a good Idea.

IMPORTANT - Above are my view & experience
Note - Pls. Refer Oracle Apps documentations /Guides for  More details.
If you need addtional details feel free to contact me at sgupta@bizinsightinc.com