Wednesday, June 10, 2009

Concurrent manager at a glance


Concurrent Managers

A concurrent request to run a concurrent program has been submitted to a concurrent manager.
Users need to run report any time inside the applications, such as sales report, payroll report and so on. When a user runs a report, a request to run the report is generated. The command to run the report is a concurrent request. The program that generates the report is a concurrent program. Concurrent programs are started by a concurrent manager. If concurrent manager is down, all concurrent transactions can't be run.
Every time your users request a concurrent program to be run, their request is inserted into a database table, and is uniquely identified by a request ID. Concurrent managers read requests from this table.
Part of a manager's definition is how many operating system processes it can devote to running requests. This number is referred to as the manager's number of target processes.
A concurrent program actually starts running based on :

o When it is scheduled to start
o Whether it is placed on hold
o Whether it is incompatible ( cannot run ) with other programs
o Its request priority


Handles background processing
Concurrent managers are the controllers of background processing for the applications. A manager runs processes at the O.S. level and sends its requests to run selected programs. Usually, sites define several managers so users can process many requests and programs in parallel.
Various forms: Run Report, View Requests, etc.
Some useful concurrent manager forms within the applications (System Administrator):
View Concurrent Requests ( \ Nav Con Req )
Run Reports ( \ Nav Rep Run )
Administer Concurrent Managers ( \ Nav Con Man Adm )

Internal Concurrent Manager vs. other managers

The Internal Concurrent Manager (ICM) and the Standard manager are the pre-defined managers. The ICM functions as the "boss" of all the other managers. The ICM starts up, verifies the status of, resets, and shuts down the individual managers. The ICM definition cannot be altered.

The Standard Manager accepts any and all requests and is active all the time. The Standard manager definition should not be altered; if it is altered and additional managers are not defined to accept requests, some programs may not run. Thus, the Standard manager should be the manager who is always available to run any request. The concurrent manager definitions are defined in the Define Concurrent Manager form ( \ Nav Con Man Def ).
Note: Both the ICM and the Standard manager operating system programs are FNDLIBR.
Conflict Resolution Manager Some of programs should not be run together. For example, only one person should close a set of books 'Accounts'. To prevent this, programs can be prevented from running concurrently with other programs. This specialized manager ( conflict resolution manager ) queues jobs in a conflict state in its own queue. Just like the internal manager, it makes sense to have one arbiter of jobs.

In Oracle Applications, data is stored in tables that belong to a particular application. Each table may also contain the conditions need to be met to access the individual record. These conditions may consist of one or more of the following data groupings ( SOB, Multiple Operating Unit, MO, Business Group , FA book and so on ). A conflict domain is an abstract representation of the groupings used to partition your data. All programs are assigned a conflict domain when they are submitted. All programs use the Standard conflict domain unless a value is defined for the profile option Concurrent: Conflicts Domain or a conflict domain is defined through a program parameter. The Conflict Resolution Manager checks concurrent program definitions for incompatibility rules. If a program is identified as Run Alone, then Conflict Resolution Manager prevents the concurrent managers from starting other programs in the same conflict domain. When a program lists other programs as being incompatible with it, the Conflict Resolution Manager prevents the program form starting until any incompatible programs in the same domain have completed running.
Specialized Managers are configured by the Applications DBA at the request of functional users. The Apps DBA should monitor the queues to ensure that there are sufficient managers in each class to handle all requests.

How to start and Stop concurrent managers

Prior to startup on the financials, users must either run the environment file ($ . .env) or add it to the login (.profile or login.com). The default filename for the environment file is .env. Some of the variables set in the environment file are listed as follows (note: these are EXAMPLES).

Variables/Executables Description
$ORACLE_HOME 8.0.6
$APPL_TOP .env must be source
$APPLCSF APPLCSF is the top-level directory in which the Concurrent Manager
puts log and output files.
$APPLLOG & $APPLOUT APPLLOG and APPLOUT are the subdirectories in which the Concurrent Manager puts log and output files.
$APPLTMP APPLTMP is the directory in which Oracle Applications temporary files are created.
$APPLPTMP APPLPTMP is the directory in which PL/SQL output files are created. The value must be exactly same as "utl_file_dir" value in init.ora parameter file. ( sample bug 1516312 )
FNDLIBR ( executable ) The ICM spawns FNDLIBR processes based on the concurrent manager definitions. The number of FNDLIBR processes at the operating system level will be equal to the total number of max requests for each concurrent manager defined plus one for the ICM. FNDLIBR processes can be queried up at the operating system level by using
$ ps -ef grep FNDLIBR
Note: Remember there are also other manager processes for INVLIBR, MFGLIBR, etc.


Starting the Concurrent Managers

cd $COMMON_TOP/admin/scripts/(CONTEXT_NAME in case of Autoconfig is enabled )
adcmctl.sh start apps/appspwd


Shutting down the concurrent managers

cd $COMMON_TOP/admin/scripts/( CONTEXT_NAME in case of Autoconfig is enabled )

adcmctl.sh stop apps/appspwd


Concurrent managers log files

Each concurrent request generates a log file for details regarding the request and an outfile for report details. There are 3 types of log files for concurrent processing:
Request log file - documents the execution of a particular request ( l.req )
Manager log file - documents the performance of a concurrent manager process. ( W.mgr )
Internal Manager log file - documents the performance of the ICM.(std.mgr). This log file displays the parameters used with the'startmgr' command.
Log files can be viewed at operating system level in $product_TOP/$APPLLOG or $APPLCSF/$APPLLOG. $APPLLOG is always set and $APPLCSF is optional. Log files can also be viewed from within the applications from the View Concurrent Requests form ( \ Nav Con Req ).
The out files contain the output generated from a concurrent processing report. Out files can be viewed at operating system level in $product_TOP/$APPLOUT or $APPLCSF/$APPLOUT (if set). Out files can also be viewed from within the applications from View Concurrent Requests form ( \ Nav Con Req).


Concurrent Managers tables

• FND_CONCURRENT_PROCESSES FND_CONCURRENT_REQUESTS
• FND_CONCURRENT_QUEUES
• FND_CONCURRENT_PROGRAMS


FND_CONCURRENT_PROCESSES -- Lists information about managers; Useful for determining UNIX and Oracle process ids associated with managers; Identifies logfiles associated with managers.

FND_CONCURRENT_REQUESTS -- Primary jobs submission table; Queried by the managers; Jobs are inserted into this table; Table can grow rather large thus affecting performance; Clenup scripts available with the Applications.

FND_CONCURRENT_PROGRAMS --Stores information about concurrent programs. Each row includes a name and description of the concurrent program. Each row also includes the execution methods for the program (EXECUTION_METHOD_CODE), the argument method (ARGUMENT_METHOD_CODE), and whether the program is constrained (QUEUE_METHOD_CODE).


If the program is a special concurrent program that controls the concurrent managers,
QUEUE_CONTROL_FLAG is set to Y. Each row also includes flags that indicate whether the program is enabled and defined as run–alone, as well as values that specify the print style the concurrent manager should use to print program output, if any. There are also values that identify the executable associated with the concurrent program and the application with which the executable is defined, and flags that specify whether the concurrent program is a parent of a report set, whether to save the output file, and whether a print style is required.Information such as printer name and number of rows and columns on each page of the output file for the concurrent program is also included in the table.
You need one row for each concurrent program in each application. Oracle Application Object Library uses this information to run concurrent programs

No comments:

Post a Comment