You are on page 1of 9

Apps DBA Tutorial 01 - Concurrent Manager

Concurrent Processing = This is a batch processing job which runs in background while user works on front end transaction. Concurrent Request = When user asks to run a program that request is called Concurrent request. Concurrent Manager = Concurrent Manager is the program which runs the concurrent requests.

There are three types of concurrent managers. 1. Internal Concurrent Manager [ICM] ICM ensures that all the concurrent manager is running. It starts and stops all concurrent managers. It also controls service managers in each node. Internal Monitor monitors the ICM and restarts ICM if ICM fails. 2. Conflict Resolution Manager [CRM] It checks concurrent program incompatibility. 3. Standard Managaer It takes care of processing any concurrent request. This manager runs always in 24x7 mode.

How to start Concurrent Manager in R12 There are two ways to start concurrents manager. 1. $INST_TOP/admin/scripts/adcmctl.sh start apps/<apps password> 2. strtmgr.sh utility A sample command is as follows. $FND_TOP/bin/strtmgr sysmgr=apps/apps logfile=/tmp/log some important parameters of strtmgr is as follows. a. Mgrname = The name of manager. Default is "Internal Manager". b. Sleep = The number of seconds ICM waits before checking new request from table FND_CONCURRENT_REQUEST. c. Diag = Deault is N. Diag=Y means full diagionistic output will be written in log file. d. Pmon = The number of sleep cycle ICM will wait before checking failed manager.

e. Quesiz

Location of Concurrent Manager Log file The deault name of the log file is std.mgr. For 11i a. $APPLCSF/$APPLLOG if $APPLCSF env variable is set b. $FND_TOP/$APPLLOG if $APPLCSF env variable is not set For R12 $INST_TOP/logs/appl/conc/log

How to check the status of the concurrent manager There are 3 ways to find the status. 1. Operating system level If process FNDLIBR is running that means that concurrent manager is up and running. $ ps -ef | grep FNDLIBR | grep appmgr01 2. From Forms Go to System Administrator > Cocurrent > Manager > Administrator. If concurrent manager is running then the value of Actual and Target should be greater than or equal to 1. <fig>

3. Sql script Run the following sql script to check the concurrent manager status. $ cd $FND_TOP/sql

$ sqlplus -s apps/apps @afimchk.sql

How to Stop Concurrent Manager 1. $ADMIN_SCRIPTS_HOME/adcmctl.sh stop apps/<apps pw> 2. By killing FNDLIBR process issueing -9. 3. Individual concurrent manager can be stopped by navigating to Concurrent > Manager > Administrator. 4. Using CONCSUB Utility $ CONCSUB username/pw SYSADMIN 'System Administrator' SYSADMIN WAIT=Y CONCURRENT FND ABORTs

What is CONCSUB Utility CONCSUB Utility allows user to submit concurrent request from operating system level. An example of that request is as follows. CONCSUB <ORACLE ID WITH PASSWORD> <Responsibility Application Short Name> <Responsibility Name> [WAIT=<Wait Flag>] CONCURRENT <Concurrent Program Application Short Name> <Concurrent Program Name> [START=<Requested Start Date>] [REPEAT_DAYS=<Repeat Interval>] [REPEAT_END=<>] <Concurrent Program Argument> Wait parameter = whether CONCSUB waits till request completes. W=Y means it return to Unix promt immediately.

Flow of a Concurrent Request

Once Concurrent Request is submitted the following things happen -> A. FND_CONCURRENT_REQUESTS table is updated with the request with scheduled time. B. Once request is scheduled the concurrent manager checks the table FND_CONCURRENT_TABLES to find out if there is any incompatibility in program. C. If there is any incompatibility CRM [Conflict Resolution Manager] takes care. D. For no incompatibility it first checks whether there is any special manager who can take care the request else standard manager takes care. E. Once completed FND_CONCURRENT_REQUEST table is updated with status.

Some Important phases of concurrent manager A. Standby = Request is put in standby mode while CRM is resolving the incompatibility. B. No Manager = CM is down or no manager was defined. C. Disabled = Concurrent Program is disabled.

How to add or define a new Concurrent Manager Go to System Administrator > Concurrent > Manager > Define. <fig>

The important parameters of the above screen is as follows. a. Manager = Name of the concurrent manager b. Type = What type of concurrent manager we are going to define. The options are Concurrent manager, Transactional Manager, internal Monitor etc.. c. Cache Size = If cache size is 5, CM reads 5 requests at a time from quesue and waits until those are completed before reading new records. d. Consumer Group = A Resource Consumer Group is a group of users who has similar resource usage requirements. Like we can create LOW_GROUP, HIGH_RESOURCE_GROUP consumer group and assign it here.

Parallel Concurrent Processing Details 1. Node This is only applicable if parallel conc processing is enabled. The node must be registered with EBS and it must be there in FND_NODES table. 2. System Queue This is used only if we want to use OS queue instead of default conc manager queue. Program Library CM only runs those programs which is listed in program libraries.

Specialization Rules If we want to run certain types of request only and include and exclude some Cons Request the this screen is used. Work Shifts It defines the time for which the concurrent manager will be active. To define workshifts go to Concurrent > Manager > Work Shifts.

<fig>

Concurrent Manager Administration Go to System Administrator > Cocurrent > Manager > Administrator.

<fig>

Some important description and functionality of this screen. Process Actual

The number of actual process running on that CM. Process Target The maximum number of process that can be active. Process Target >= Process Actual. Running The number of request currently running.

Controlling Parameter -> Terminate Immediately abort all running request and particular manager terminates. If we terminate IM then all the cns manager stops. Deactivate Here before stopping the manager all the requests get completed. This is the difference between shut down and terminate. Restart Verify This is available only for IM. The process monitoring of othere concurrent manager by IM is known as PMON Cycle. Verify forces to PMON cycle to occur immediately.

Parallel Concurrent Processing Parallel concurrent helps to distribute load across various nodes to utilize full hardware resources. The following are some of the architecture of parrallel concurrent processing. 1. Cluster Env In a cluster environment, multiple computer/CPU, each representing a single node, share a common pool of disks. Oracle Database resides in that common disk whereas multiple instances of RAC run simultaneously on multiple nodes of cluster. CM is also divided in multiple nodes. 2. Massively Parallel env Here, multiple nodes are housed in a single computer and all nodes share a common pool of disk. Separate RAC instances run simultaneously on multiple node. 3. Networked Env

Multiple computers of same type are connected via LAN to a single DB or a RAC DB.

How Parallel Concurrent Processing happens Each conc manager is assigned a primary and secondary node. The CM starts in primary node by default. It changes to the secondary node once there are some faults in primary node. ICM can run on any of the node. It can activate and deactivate any CM. Due to heavy fault tolerance of ICM it is monitored by Internal Monitor [IM]. IM starts ICM if it will fail in any time.

Generic Service Management [GSM]

<fig>

GSM is a new concept and powerful framework to manage services in different host machines. Some services such as oracle forms listener, reports server, apache web listener, workflow mailer can be integrated in this framework. With GSM, the ICM will manage these services in each hosts. And each hosts has a service manager which acts on behalf of ICM in that hosts. This service manager monitor and controls the services in that host and send the end result to ICM.

Important Diagonistic Scripts for Concurrent Manager For details see metalink note 213021.1. All scripts are inside $FND_TOP/sql. 1. afimchk.sql = Tell status of ICM and PMON. 2. afcmstat.sql = lists active manager processes. 3. afrqscm.sql = prints log file names of the managers. 4. afimlock.sql = lists the locks that ICM is waiting to get.