|
Wednesday, May 6, 2009 |
Concurrent Managers |
Hello Everyone!!!
Concurrent Managers
Concurrent Manager: It is a component of your applications concurrent processing facility that monitor and run time consuming tasks without tying up your terminal. Whenever you submit a request, such as running a report, a concurrent manager does the work for you, letting you perform many tasks simultaneously. It is a daemon program running continuously in the background for e.g. a Unix shell script
Concurrent Process: A task in the process of completing. Each time you submit a task, a new concurrent process is created. A concurrent process runs simultaneously with other concurrent processes (and other activities on your computer) to help you complete multiple tasks at once with no interruptions to your terminal.
Concurrent Queue: A list of concurrent requests awaiting completion by a concurrent manager. Each concurrent manager has a queue of requests waiting in line.
Concurrent Request: A request to complete a task for you. You issue a request whenever you submit a task, such as running a report. Once you submit a task, the concurrent manager automatically takes over for you, completing your request without further involvement from you, or interruption to your work. Concurrent managers process your request according to when you submit the request and the priority you assign to your request. If you do not assign a priority to your request, the application automatically prioritizes the request for you.
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.
Identifying Oracle Process ID and Dictionaries
The main tables or the data dictionaries of Oracle Apps are the following, using which we can query to find the status of any of the Concurrent Requests or Programs. FND_CONCURRENT_PROCESSES FND_CONCURRENT_PROGRAMS FND_CONCURRENT_REQUESTS FND_CONCURRENT_QUEUES.
In order to identify a Request that is running in the Oracle Application side, we can query the FND_CONCURRENT_REQUESTS table or the V$SESSION and the V$PROCESS table. While doing this, we need the Process Id at the OS level, the Process ID at the Oracle database tier and also the Process ID at the Application tier.
Identifying a Running Process Session ID : Session ID is the Identification number of the Process at the Database Side. The value for this field can be obtained by querying the V$SESSION view. This is given by the field SID.
Process ID and SPID: The Process ID or the PID is the number of the Process at the OS level and the SPID is the identification number for the Process at the Application level. These values can be obtained by querying the V$PROCESS view.
Request ID: Request ID is the ID of the Concurrent request or the Program that has been submitted at the Application tier. This field is denoted by the REQUEST_ID field and can be obtained by querying the FND_CONCURRENT_REQUESTS view.
PHASE_CODE and STATUS_CODE : These two columns gives the value of the Phase and the Status Code of the concurrent request that is running in the Application end. Some of the different Status Code and Phase code and their meanings are as follows: Phase code C - Completed C - Completed P - pending R - Running
Status code D - Cancelled C - Normal Q - standby W - paused
We can get the Oracle Process ID and the OS Process ID for a particular request that is running in the Application end by querying the FND_CONCURRENT_REQUESTS View also. The fields ORACLE_PROCESS_ID , and OS_PROCESS_ID represent the same in the FND_CONCURRENT_REQUESTS dictionary view.
E.g. In order to kill a particular request that is running, we can obtain the Process ID and other details using the below mentioned SQL query .. :
SQL> select Phase_code, status_code,REQUEST_ID,ORACLE_ID, ORACLE_PROCESS_ID, OS_PROCESS_ID from fnd_concurrent_requests where REQUEST_ID=;
After identifying the Process ID and the OS ID, we can kill the particular request or the Process using the normal OS command. E.g.. KILL .
Happy Learning --ChandruLabels: Concurrent Managers |
posted by Srinivasan .R @ 12:48 AM |
|
|
|
|