Wednesday, August 29, 2012

Best Practices for Performance for Concurrent Managers in eBusiness Suite


Best Practices for Performance for Concurrent Managers in eBusiness Suite

This Document contains 3 topics:

1. Generic Tips
2. Transaction Manager (TM)
3. Parallel Concurrent Processing (PCP) Environment


Generic Tips

1) Sleep Seconds is the number of seconds your Concurrent manager waits between checking the list of pending concurrent requests (concurrent requests waiting to be started).

Tip: Set the sleep time to be very brief during periods when the number of requests submitted is expected to be high.  Otherwise set the sleep time to a high number (e.g. 2 minutes). This avoids constant polls to check for new requests.

2) Increase the cache size (number of requests cached) to at least twice the number of target processes.

For example, if a manager's work shift has 1 target process and a cache value of 3, it will read three requests, and try to run those three requests before reading any new requests.

Tip: Enter a value of 1 when defining a manager that runs long, time-consuming jobs, and a value of 3 or 4 for managers that run small, quick jobs.

3) Create Specilized concurrent managers to dedicate certain process either short or long running programs to avoid queue length.

4) To maximize throughput consider reducing the sleep time of the Conflict Resolution Manager (CRM).  The default value is 60 seconds. You can consider setting to 5 or 10 seconds.

5) Avoid enabling an excessive number of standard or specialized managers. It degrade the performance due polling on queue tables (FND_CONCURRENT_REQUESTS...). You need to create specialized managers only if there is a real need.

5) Set the system profile option "Concurrent: Force Local Output File Mode" to "Yes" if required. You need to apply patch 7530490 for R12 (or) 7834670 for 11i to get this profile.

Refer Note.822368.1 Purge Concurrent Request FNDCPPUR Does Not Delete Files From File System or Slow performance

Note:  This profile option "Concurrent: Force Local Output File Mode" is set to "No" by default. After applying the Patch, it set this profile option to YES will cause FNDCPPUR to always access files on the local file system. Hence FNDCPPUR will remove the OS files faster. To enable this feature, ALL Concurrent Manager nodes must be able to access the output file location via the local filesystem

6) Truncate the reports.log file in log directory.   Refer Note 844976.1 for more details

Truncation of file "reports.log" is a regular maintenance work of Application DBA. Make sure that reports log file size should not increase its maximum limit of 2 GB. There is no purge concurrent program to truncate file "reports.log". This maintenance needs to be done manually and regularly depending on number of concurrent program which uses "reports.log". You can safely truncate "reports.log".

7) Ensure "Purge Concurrent Request FNDCPPUR"  is run at regular interval with "Entity" parameter as "ALL".  High number of records in FND_CONCURRENT tables degrade the performance.

8) Ensure that it removes the log/out files from the below location as you run "Purge Concurrent Request".

 $APPLCSF/$APPLLOG
 $APPLCSF/$APPLOUT

8.1) Incase if it does not  remove the log/out files , Over a Period, It will slow down the performance.  Please refer below Note which suggests the patch which fixes it.

Note.822368.1  Purge Concurrent Request FNDCPPUR Does Not Delete Files From File System or Slow performance


9) Defragment the tables periodically to reclaim unused space / improve performance:

FND_CONCURRENT_REQUESTS
FND_CONCURRENT_PROCESSES
FND_CRM_HISTORY
FND_ENV_CONTEXT
FND_TEMP_FILES


How to defragment:

 9.1) alter table <owner>.<table_name> move;
 9.2) Note that, some indexes might become unusable after table is moved, check the index status from dba_indexes for the table moved and rebuild them too as explained in next bullet.
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
select owner, index_name, status from dba_indexes
where table_owner = upper('&OWNER') and
table_name = upper('&SEGMENT_NAME');

Note: Please ensure the tablespace in which the object is currently existing, has sufficient space before you move/defragment.

Ensure to take necessary backup of the tables before moving the data. Its suggested to do it on test instance and test it before doing it on Production.

 9.3) You will need to collect the statistics for the tables.
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
For example:
exec fnd_stats.gather_table_stats ('APPLSYS','FND_CONCURRENT_REQUESTS',PERCENT=>99);

Transaction Manager (TM)

10 ) Concurrent: Wait for Available TM – Total time to wait for a TM before switchover to next available TM.  Consider setting this to 1 (second).

11) Ensure enough TMs exist to service the incoming request load.

12) When the load is high, set the following profiles to optimum values to achieve better results.

 PO: Approval Timeout Value  -  Total time for workflow call (When initiated from Forms) to time out.

13)  Set the sleep time on the Transaction Manager to a high number (e.g. 10 minutes). This avoids constant polls to check for shutdown requests.

Parallel Concurrent Processing (PCP) Environment

14) Refer NOTE 551895.1 Failover Of Concurrent Manager Processes Takes More than 30 Minutes

15) Set profile option 'Concurrent: PCP Instance Check' to 'OFF' if instance-sensitive failover is not required. Setting it to 'ON' means that concurrent managers will fail over to a secondary application tier node if the database instance to which it is connected goes down.

16) ‘Concurrent: TM Transport Type' to ‘QUEUE',

17) Add these parameters depends on your Database version

                + _lm_global_posts=TRUE
                + _immediate_commit_propagation=TRUE  (11g RAC)
                + max_commit_propagation_delay=0  (9i RAC)

No comments: