Inside the Oracle Concurrent Manager

by Terry Oakes & Donald K. Burleson

The concurrent managers in the Oracle e-Business suite serve several important administrative functions. Foremost, the concurrent managers ensure that the applications are not overwhelmed with requests, and the second areas of functions are the management of batch processing and report generation. This article will explore tools that are used by experienced administrators to gain insight and improved control over the concurrent management functions. We will explore how the concurrent managers can be configured via the GUI, and also explore scripts and dictionary queries that are used to improve the functionality of concurrent management. The Master Concurrent Managers There is a lot of talk about "the" concurrent manager in Oracle Applications. Actually, there are many Concurrent Managers, each governing flow within each Oracle Apps areas. In addition there are "super" Concurrent Managers whose job is to govern the behavior of the slave Concurrent Managers. The Oracle e-Business suite has three important master Concurrent Managers:

Internal Concurrent Manager ² The master manager is called the Internal Concurrent Manager (ICM) because it controls the behavior of all of the other managers, and because the ICM is the boss, it must be running before any other managers can be activated. The main functions of the ICM are to start up and shutdown the individual concurrent managers, and reset the other managers after one them has a failure. Standard Manager ² Another important master Concurrent Manager is called the Standard Manager (SM). The SM functions to run any reports and batch jobs that have not been defined to run in any specific product manager. Examples of specific concurrent managers include the Inventory Manager, CRP Inquiry Manager, and the Receivables Tax Manager. Conflict Resolution Manager ² The Conflict Resolution Manager (CRM) functions to check concurrent program definitions for incompatibility rules. However, the ICM can be configured to take over the CRM's job to resolve incompatibilities.



Now that we understand the functions of the master Concurrent Managers, let's take a quick look at techniques that are used by Oracle Apps DBAs to monitor the tune the behavior of the Concurrent Managers. Tuning the Concurrent Manager

However. Queue Size ² The queue size is the number of PMON cycles that the ICM waits between checking for disabled or new concurrent managers. y PMON cycle ² This is the number of sleep cycles that the ICM waits between the time it checks for concurrent managers failures. can be configured to run as many processes as needed. which defaults to 20. The default for queue size of 1 PMON cycle should be used. For a fresh install of the applications. and drill-down into more detail. After the applications . This article will explore some of the important techniques for monitoring and tuning the Oracle Apps Concurrent Manager processes. However. as well as the time and days a manager can process requests. Sleep Time ² The sleep time parameter indicates the seconds that the ICM should wait between checking for requests that are waiting to run. and all the other managers with two processes. the number of processes needed is dependent on each organization's environment. The default sleep time is 60. The topics will include: y Tuning the Concurrent Manager o Tuning the Internal Concurrent Manager o o o o Purging Concurrent Requests Troubleshooting Oracle Apps performance problems Adjusting the Concurrent Manager Cache Size y y Analyzing the Oracle Apps Dictionary Tables Monitoring Pending Requests in the Concurrent Manager Changing the dispatching priority within the Concurrent Manager Let's start by looking at tuning the ICM. queue size. You should change the PMON cycle to a number lower than 20 if your concurrent managers are having problems with abnormal terminations.All successful Oracle Apps DBAs must understand how to monitor and tune each of the Concurrent Managers. and sleep time. but you can lower this number if you see you have a lot of request waiting (Pending/Normal). y y All of the concurrent managers. initially configure the standard manager to run with five processes. reducing this number to a very low value many cause excessive cpu utilization. with the exception of the ICM and CRM. An Applications DBA must monitor the concurrent processing in order to decide how to configure each manager. Tuning the Internal Concurrent Manager (ICM) The ICM performance is affected by the three important Oracle parameters PMON cycle.

To enable trace for a specific request. This request can be configured to purge the request data from the FND tables as well as the log files and output files on accumulate on disk. such as PO or AR. Increasing the cache size will boost the throughput of the managers by attempting to avoid sleep time. (Figure 1) . Query for the request that you want to enable trace. When you experience these space problems. so you can also just run the request Analyze Schema Statistics for APPLSYS. Second. At the bottom right of the screen you can check the box Enable Trace. can be set by enabling the module's profile option Debug Trace from within the applications. Purging Concurrent Requests One important area of Concurrent Manager tuning is monitoring the space usage for the subsets within each concurrent manager. Since the APPLSYS user is the owner of these tables. the concurrent managers should be monitored to determine is more operating system process should be allocated. To troubleshoot performance. Run the request "Analyze All Index Column Statistics" on the indexes of these tables. a DBA can use three types of trace. a specific request called "Purge Concurrent Requests And/Or Manager Data" should be scheduled to run on a regular basis. Navigate to Concurrent -> Program -> Define.have been in operation for a while. Adjusting the Concurrent Manager Cache Size Concurrent manager performance can also be enhanced by increasing the manager cache size to be at lease twice the number of target processes. A module trace. you can start to experience serious performance problems within your Oracle Applications. The cache size specifies the number of requests that will be cached each time the concurrent manager reads from the FND_CONCURRENT_REQUESTS table. When the space in FND_CONCURRENT_PROCESSES and FND_CONCURRENT_REQUESTS exceed 50K. most concurrent requests can be set to generate a trace file by changing the request parameters. log in as a user with the System Administrator responsibility. Analyzing Oracle Apps Dictionary Tables for High Performance It is also very important to run the request Gather Table Statistics on these tables: y y y y FND_CONCURRENT_PROCESSES FND_CONCURRENT_PROGRAMS FND_CONCURRENT_REQUESTS FND_CONCURRENT_QUEUES.

Figure 1: Troubleshooting Concurrent Manager Performance. Monitoring Pending Requests in the Concurrent Managers Occasionally. and then make a list of the requests that will not complete so they can be resubmitted. 3. you may find that requests are stacking up in the concurrent managers with a status of "pending". Navigate to Concurrent -> Manager -> Define. To allocate more processes to a manager. Increase the number in the . log in as a user with the System Administrator responsibility. When you get a backlog of pending requests. and cancel them. This can be caused by any of these conditions: 1. There is a shortage of RAM memory or CPU resources. The concurrent managers were brought down will a request was running. and running the request from the command line. you can first allocate more processes to the manager that is having the problem in order to allow most of the requests to process. Another popular way to troubleshoot the Concurrent Managers is to generate a trace file. The database was shutdown before shutting down the concurrent managers. 2. This is done by setting the OS environment variable FNDSQLCHK to FULL.

Figure 2: Allocating more processes to the Concurrent Manager. If a priority is not set for a request. you can still have problems.Processes column. Also. . If the request remains in a phase of RUNNING and a status of TERMINATING after allocating more processes to the manager. phase_code='C' where status_code='T'. you can navigate to Concurrent --> Program --> Define to change the priority of a request. you may not need all the concurrent managers that Oracle supplies with an Oracle Applications install. then shutdown the concurrent managers. it will have the same priority as all other requests. so you can save resources by identifying the unneeded managers and disabling them. and execute the following sqlplus statement as the APPLSYS user to reset the managers in the FND_CONCURRENT_REQUESTS table: update fnd_concurrent_requests set status_code='X'. Changing Dispatching Priority within the Concurrent Manager If there are requests that have a higher priority to run over other requests. However. kill any processes from the operating system that won't terminate. or it will be set to the value specified in the user's profile option Concurrent:Priority.

Oracle provides several internal tables that can be queried from SQL*Plus to see the status of the concurrent requests.sql afqpmrid. You should run this script if there are long delays when submitting jobs. and the most important are FND_CONCURRENT_PROGRAMS and FND_CONCURRENT_REQUESTS.sql . If this is occurring. Using data Dictionary Scripts with the Concurrent Manager Few Oracle Applications DBAs understand that sophisticated data dictionary queries can be run to reveal details about the workings within each Concurrent Manager. RULE.sql afrqwait. If several long running requests are submitted together. you can specify that a request run using an SQL optimizer mode of FIRST_ROWS. Oracle supplies several useful scripts. or if you suspect the ICM is in a gridlock with another oracle process afcmcreq.Also. for monitoring the concurrent managers: afcmstat. Displays the process id. they can cause fast running requests to have to wait unnecessarily. Displays the concurrent manager and the name of its log file that processed a request. ALL_ROWS. Displays of summary of concurrent request execution time and status since a particular date.sql afimlock. (located in $FND_TOP/sql directory). and process id that may be causing locks that the ICM and CRM are waiting to get. their maximum capacity. and scheduled. and this can radically effect the performance of the SQL inside the Concurrent request.sql afimchk. held. or CHOOSE. Displays the operating system process id of the FNDLIBR process based on a concurrent request id. Additionally.sql afrqstat.sql Displays all the defined managers. and their status. Displays the status of ICM and PMON method in effect. The process id can then be used with the ORADEBUG utility. a concurrent manager can be created to run only fast running requests. Displays the requests that are pending. the ICM's log file. and determines if the concurrent manger monitor is running. pids. try to schedule as many long running requests to run after peak business hours. terminal.

Sign up to vote on this title
UsefulNot useful