Infolinks

Wednesday 4 July 2012

Concurrent manager in Oracle Apps

 Concurrent manager in Oracle Apps

Lets discuss the very basics of Concurrent Managers, again the very basics for the beginners that read

Two things are obvious:-

1. Concurrent Manager is related to Concurrent  Programs
2. Concurrent manager manages the concurrent(oops I mean parallel) execution of concurrent programs.

So what's left to explain?.....Well nothing much, but I gave a commitment to one of my readers that I shall write something about concurrent managers today. And now when I begin to write, I realize it is worth writing something in plain English on this topic.


Lets explain this with some Q&A
Question : How to run a concurrent program?
Answer: In oracle apps you have a concurrent program submission screen. You can submit the concurrent program from that screen.

Question: What happens when you submit a concurrent program?
Answer: There is something known as Concurrent Manager that runs in the background all the time. This background process, called Concurrent Manager ideally will be running 24x7.
As the name suggests, purpose of a concurrent manager is to manage the submitted concurrent programs.

Question: When I submit a concurrent program( or call it concurrent request), how does concurrent manager pick this up?
Answer: Concurrent manager will be running in the background waiting for a concurrent program to be submitted. As soon as a concurrent program is submitted, it then gets put in an execution queue by concurrent manager.

Question: Why does the Concurrent manager put a concurrent program into a queue? Why doesn't the manager simply let the program run?
Answer: Because at any given point in time a concurrent manager can run no more than say 10 programs concurrently. This figure of 10 is configurable of course. First the manager puts a submitted program into a queue, next the manager checks if there is a slot available (i.e. Less than 10 programs are currently running). If a slot is found available, the concurrent manager then runs the program, or else it keeps the concurrent program in a queue with status Pending.

Question: If we have two concurrent programs, that must never run in parallel(oops I mean concurrently)....can concurrent manager manage such scenarios?
Answer: Of course it can. When you define a concurrent program, you can specify if there are any incompatible programs. If incompatible concurrent programs exist, then concurrent manager will wait for the incompatible program to complete.

Question: Is that all what concurrent manager does?
Answer: Much more, if interested, then read on….

Concurrent manager is responsible for below things too…..

Managing the printer:-
An Oracle Report is registered as a concurrent program too. During submission or during the definition of concurrent program, we can specify the printer where report gets printed. Concurrent manager will send the output of the program to that printer.

Managing the programs completion status-
For example a pl/sql concurrent program can set retcode=2 to make a program complete with warning. Hence concurrent manager not just executes the program, but it manages the completion status of the program too.

Classpath of a java program:-
A concurrent program can be of type java too. If for this specific concurrent program you wish to use a set of java libraries, then you can specify the path of that library in concurrent program definition. Concurrent manager will amend the CLASSPATH to reflect the path of the java library.

Interaction with host concurrent program-
When running a host concurrent program, the concurrent manager passes the apps password as a parameter to the unix script

Tracing a concurrent program
Concurrent manager enable the session trace for the concurrent program, if enable trace checkbox is checked in program definition. You can then go to user dump directory and do tkprof on the file.

Optimization options:-
The concurrent program definition provides an option to specify optimization mode, like choose, fist rows,all rows, rule based etc. The concurrent manager will alter the optimization mode of the session before the submission of the program. Obviously this option has no relevance to Host type concurrent program.

More? ...well I am bored with concurrent managers now, I guess you too are by now....

No comments:

Post a Comment