Concurrent managers is the manager used by Oracle ERP to control user requests. It can be used for scheduled processing to generate reports and batch processing.
There are many types of concurrent manager, such:
Internal Manager
Standard Manager
Processing Transaction Manager
Receivables Tax Manager
SFM controller Service
Inventory Manager
Responsible for different types of requests, the most basic three are:
- Internal concurrent Manager (ICM)-The internal concurrent manager or the ICM is the 'master' concurrent manager. It is mainly used to manage other managers, so this must be done first.
- (OS process sample) fndlibr FND cpmgr fndcpmbr sysmgr = "" logfile =...
- Standard concurrent Manager-This the core manger and the most hard working of the three. This is the most common manager. Generally, jobs and processes are controlled by it. Unless the request has a special manager.
- (OS process sample) fndlibr FND concurrent_processor manage ologin = "apps/94
- Conflict resolution Manager (CRM)-The Conflict Resolution manager of the CRM is responsible of handling any conflicts that might occur within the concurrent programmes. the main purpose is to avoid conflicts between requests, such as batch processing, which cannot be run at the same time.
- (OS process sample) fndcrm apps/889f9884a29d997f7676
Query Manager SQL: Select user_concurrent_queue_name manager, node_name node,
Running_processes actual, max_processes target, cache_size Buf,
Diagnostic_level, enabled_flag
From fnd_concurrent_queues_vl
------------------------------
Standard Manager 3 3 6 N Y
PO document approval Manager 3 3 N Y
Query Manager Process SQL:
Select distinct concurrent_process_id CPID, PID opid, OS _process_id osid,
Q. user_concurrent_queue_name manager, P. node_name node,
To_char (P. process_start_date,
'Yy-MM-DD hh24: MI: ss'
) Started_at,
P. logfile_name, P. process_status_code
From fnd_concurrent_processes P,
Fnd_concurrent_queues_vl Q,
Fnd_v $ Process
Where Q. application_id = queue_application_id
And (Q. concurrent_queue_id = P. concurrent_queue_id)
And (spid = OS _process_id)
And process_status_code not in ('k','s ')
Order by OS _process_id,
Concurrent_process_id,
Q. user_concurrent_queue_name
---------------------------------------------------------------------
251606 10 8560 internal manager testserver 08-01-21 14:07:25 ../testt. Mgr
251607 31 9527 conflict resolution manager testserver 08-01-21 14:07:29 ../c251607.mgr
251609 32 9528 scheduler/prereleaser manager testserver 08-01-21 14:07:29 ../s251609.mgr
Query Process status code SQL: Select *
From fnd_lookups
Where lookup_type like 'cp _ process_status_code'
-----------------------------------------------------------------
Cp_process_status_code a active
Cp_process_status_code C connecting
Cp_process_status_code D deactiviating
Cp_process_status_code K terminated
Cp_process_status_code M migrating
Cp_process_status_code P suincluded
Cp_process_status_code R running
Cp_process_status_code s deactivated
Cp_process_status_code t terminating
Cp_process_status_code Z initializing
About cache size:
If concurrent requests has little priority and are both small requests, you can set the cache size to at least twice the target processs.
This will speed up processing and reduce sleep time. The information from fnd_concurrent_requests is actually cached.
To put it simply, when the cache size is increased, concurrent manager will know in advance that there are still several requests to be processed, so as to avoid entering sleep status. This will allow continuous processing. Of course, it is necessary that not all resources can be set when the resource permits.