Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 10

Concurrent Manager FAQs

 
What is Concurrent Processing Server?
The reporting programs and data updating programs that need to run either periodically, or
on an ad hoc basis. These programs, which run in the background while users continue to
work on other tasks, may require a large number of data-intensive computations, and are
run using the Concurrent Processing architecture.
 
What is Concurrent Manager?
Concurrent managers are fundamental to concurrent processing. Acting as a job scheduling
and execution system, a concurrent manager:
 
       Is an executable that is registered as a program library within Oracle E-Business
Suite, and which runs in its own operating system process
       Runs operating system processes called target processes (often referred to as
workers),each of which can start one concurrent program at a time
       Can optionally run an immediate program that runs as part of the concurrent 
manager's own operating system process
       Can be allowed to run any concurrent program, or be specialized to run certain
programs
       Operates during the days and times defined by a work shift 
 
How can I check to see if a concurrent manager is running?
One way to see if a manager is running is to use the 'Administer Concurrent Managers'
form. Navigate to Concurrent->Managers->Administer.
 
You will see two columns labeled 'Actual' and 'Target'.
 
The Target column lists the number of processes that should be running for each manager
for this particular workshift.
 
The Actual column lists the number of processes that are actually running. If the Actual
column is zero, there are no processes running for this manager. If the Target column is
zero, then either a workshift has not been assigned to this manager, or the current
workshift does not specify any target processes.
 
If the target column is not zero, then the manager processes have either failed to start up,
or gone down. You should check the manager's logfile and the ICM logfile. You can also
search for OS processes using the 'ps' command.
 

When you need to bounce (stop and restart) the Concurrent Manager?
When you modify the Printer Driver you have to restart the Manager which runs the request
which is attached to that Printer Driver, however, if you do not know which managers then
you have to restart the internal manager because the printer driver can be used by multiple
managers and multiple requests.
 

If only a concurrent program definition is modified, running a verify on the Internal Manager
will pick up the changes without the need for bouncing the manager.

 
 

Can I delete a concurrent manager?


You can disable the manager by checking the 'Enabled' checkbox, or you can simply
terminate the manager and it will not run again unless you reactivate it.
 
If it is really necessary, you can query the manager in the 'Define Manager' form, and delete
the row. (It is recommended that you DO NOT do this)
 
What is Concurrent Request/Program?
A concurrent program is an executable file that runs simultaneously with other concurrent
programs and with online operations. Typically a concurrent program is a long-running
data-intensive task such as generating a report. A concurrent request is a request that you
submit to run a concurrent program as a concurrent process.
 
What is Concurrent Request Set?
A request set is a collection of reports and/or programs that you group together. You can
submit the reports and/or programs in a request set all at once using a single transaction.
 
What is Internal Concurrent Manager (ICM)?
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.
 
What is Conflict Resolution Manager (CRM)?
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. Concurrent managers read requests to start concurrent programs
running.  The Conflict Resolution Manager checks concurrent program definitions for
incompatibility rules.
 
If a program is identified as Run Alone, then the 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 from starting until any incompatible programs in the same domain
have completed running.
 
What is Standard Manager?
The Standard Manager 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.
 
What is Transaction Manager?
Transaction Managers support synchronous request processing, whereby a pool of server
processes responds to requests from client programs. Instead of polling the concurrent
requests table to obtain instructions, a transaction manager waits to be signaled by a client.
An example is approval of an order, where execution of the request must take place
quickly. 
 
What is the Internal Monitor Manager?
This manager/service is used to implement Distributed Concurrent Processing. It monitors
whether the ICM is still running, and if the ICM crashes, it will restart it on another node.
You do not need to run this manager/service unless you are using Distributed Concurrent
Processing.
 
How can we delete a Concurrent Program which is already registered?
There is no option directly supported by Oracle from front end. You can disable the
concurrent program (Navigation: Concurrent Program  Define  Enabled)
 
You can delete from backend
 
Begin
fnd_program.delete_program('SHORTNAME','APPLICATION');
fnd_program.delete_executable('SHORTNAME','APPLICATION');
end;
 
Note: It is recommended that you DO NOT do this.
 
How to schedule the concurrent programs from Back end?
Concurrent request/program can be submitted through Submit Request from front end or
the following can be used in PL/SQL code to submit from backend directly.
 
fnd.request.submit_request(Concurrent_program_name,
      application_short_name
      description,
      parameters)

Does the Internal manager schedule requests?


The ICM really does not have any such scheduling responsibilities. It has NOTHING to do
with scheduling requests, or deciding which manager will run a particular request. Its
function is only to run 'queue control' requests, which are requests to startup or shutdown,
other managers.
 
It is responsible for startup and shutdown of the whole concurrent processing facility, and it
also monitors the other managers periodically, and restarts them if they should go down. It
can also take over the Conflict Resolution manager's job, and resolve incompatibilities.
 
If the ICM itself should go down, requests will continue to run normally, except for 'queue
control' requests. You can restart it with ‘startmgr’; you do not need to kill the other
managers first.
 
 
Where do concurrent request or manager logfiles and output files go?
It places log files in $APPLCSF/$APPLLOG, output files go in $APPLCSF/$APPLOUT
 
So for example, if you have this environment set:
 
        $APPLCSF = /u01/appl/common
        $APPLLOG = log
        $APPLOUT = out
 
The concurrent manager will place
          log files in /u01/appl/common/log, and
          output files in /u01/appl/common/out
 
Note that $APPLCSF must be a full, absolute path, and the other two are directory names.
 
If $APPLCSF is not set, it places the files under the product top of the application associated
with the request.
 
For example, a PO report would go under $PO_TOP/$APPLLOG and $PO_TOP/$APPLOUT
 
Logfiles go to:  /u01/appl/po/9.0/log
Output files to: /u01/appl/po/9.0/out
All these directories must exist and have the correct permissions.
 
What are the logfile and output file naming conventions?
Request logfiles: l<request id>.req
 
Output files: If $APPCPNAM is not set:  <username>.<request id>
 If $APPCPNAM = REQID:     o<request id>.out
 If $APPCPNAM = USER:      <username>.out
    
Where: <request id> = The request id of the concurrent request
And: <username> = The id of the user that submitted the request
 
 
Manager logfiles:
 
ICM logfile: Default is std.mgr, can be changed with the mgrname startup parameter
 
Concurrent manager log:        w<XXXXXX>.mgr
Transaction manager log:       t<XXXXXX>.mgr
Conflict Resolution manager log:        c<XXXXXX>.mgr
 
 
Where: <XXXXXX> is the concurrent process id of the manager
 
How do I check/set the PMON method?
 
To check the PMON method:
 
1) cd $FND_TOP/sql
2) sqlplus apps/apps @afimchk.sql

This will tell whether the internal manager is running, what the PMON method is, and where
the log file is.
 
To set the PMON method:
 
1) First shut the concurrent managers down
2) cd $FND_TOP/sql
3) sqlplus apps/apps @afimpmon.sql LOCK  (or RDBMS)
 
How do I enable/disable the Conflict Resolution Manager?
Use the system profile option 'Concurrent: Use ICM'. Setting this to 'No' (which is the
default) allows the CRM to be started. Setting it to 'Yes' cause the CRM to be shutdown and
the Internal Manager (ICM) will take over the conflict resolution duties. If the CRM will not
start (it is started automatically by the ICM), check this profile option.
 
Note that using the ICM to resolve conflicts is not recommended.  The CRM's sole purpose is
to resolve conflicts, while the ICM has other functions to perform as well. Only set this
option to 'YES' if you have a good reason to do so.
 
 
How do I clean out the Concurrent Manager tables?
Cleaning out the tables is a useful method of making sure that there  are no invalid statuses
that can prevent the managers from starting. Previously, this has been done by truncating
fnd_concurrent_processes and/or fnd_concurrent_requests. Truncation of the tables is a
little
drastic, and can cause problems later when trying to purge requests,  not to mention losing
all of the request information.
 
Run the script, cmclean.sql, article note 134007.1 CMCLEAN.SQL - Non  Destructive Script
to Clean Concurrent Manager Tables  It will make sure the relevant status codes are valid
without
deleting any information.
 
How do I tell concurrent manager processes apart at the OS level?
 
Use: pf -ef | grep FNDLIBR
 

This will produce output like:


The process, # 25933, shows 'FNDLIBR FND CPMGR', this one is the Internal Manager
(ICM). Notice that it gives some of the parameters it was started with; the other processes
showing 'Concurrent_Processor' are Standard manager processes.
 
The Conflict Resolution manager will look like:

$ ps -ef | grep FNDCRM

I hit the Restart button to start the Standard manager, but it still did not start?
 
Telling a manager to restart just sets the status to Restart, The ICM will start it the next
process monitor session or the next time the ICM starts. Use Activate to start a manager
immediately. When a manager is deactivated manually, the ICM will not restart it, you will
need to set it to Restart, or activate it manually.
 
How many rows are in FND_CONCURRENT_REQUESTS and FND_CONCURRENT_PROCESSES
tables?
 
Depending on the specification of the system it has been seen that when tables reach above
3000-4000 rows, the performance begins to diminish, however, there could be 30000-
40000 rows in the tale before the performance begins to degrade.
You may want to run the Purge Concurrent Request and/or Manager Data on a regular
basis, dependant on the amount of requests being run.
 
The Purge Concurrent Requests job can be used to purge:
Requests, Mgr logs, and All requests depending on what is chosen.
 
Use the following options: Enter = All, Mode = AGE, Mode Value = 15
 
The std.mgr log continuously grows where it may good to archive it regularly.
 
 
Any processes pending in Internal or Conflict Resolution Manager?
Best course of action before starting the Concurrent Managers is to cancel any "Deactivate"
or "Verify" jobs pending in the Internal Manager and place any other pending jobs on hold. 
 
How do I turn on transaction manager diagnostics?
Set the profile option 'Concurrent:Debug Flags' to 'TCTM1' at the site level. This will cause
transactions to make debug entries in the  FND_CONCURRENT_DEBUG_INFO table.
Truncate this table before running a  tranasction, then select the entries from the table.
Starting the managers with diag=Y will also produce more information in the transaction
manager logfile.
 
Problem....
 
When you try to submit a request like Active users or Active responsibilities, request gets
submitted. When we view the help requests, you find that it is inactive / nomanager.
 
Within 12 to 15 seconds, you refresh-it gets completed. Initially, you could find only inactive
and we look at the diagnostic- the concurrent manager assigned is not   picking up. There is
no specialization rules in any managers except the include program this source.
 
Solution....
 
Most often when this occurs where a request goes "inactive/no manager" and is then
processed a short time later, the solution is to either increase the cache size for your
Standard manger, or increase the actual number of Standard manager processes.
 
Cache Size is set on the CONCURRENT/MANAGER/DEFINE form.  Basically, this regulates
how many requests a manager will pick up for each sleep cycle.
 
How do I process more concurrent requests concurrently?
The Concurrent Manager parameters, (Query the concurrent manager by Login as
Sysadmin, navigate -> Concurrent -> Manager -> Define and Query for the relevant
concurrent manager), should be modified to handle more concurrent requests concurrently,
this can be done in two steps:
 
    (i) Increase the Number of Target processes for the manager
 
    (ii) Change the cache size of the concurrent manager as this determines how many
requests will be evaluated by a manager at a time and should match the target (process)
value as set above.
 
How to run a concurrent request through a Self-Service Page?
 
Self-Service Page does not deliver any concurrent requests. You have to use the
Professional User Interface only.
 
How to Re-create Concurrent Manager Views?
 
FNDLIBR FND FNDCPBWV apps/<passwd> SYSADMIN 'System Administrator'
 SYSADMIN

You might also like