Concurrent manager in Oracle Apps
Written by Anil Passi   
Wednesday, 25 October 2006
Lets discuss the very basics of Concurrent Managers, again the very basics for the beginners that read http://getappstraining.blogspot.com
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....
Comments (8)add
...
written by Tony , February 24, 2007
Hi Anil,

I am working as an Technical Consultant for the past 1 year,but i came across yor site very late,It is a good site for beginners,very helpful
...
written by Amitabha , April 04, 2007
Hi Anil,

I faced a peculiar problem with incompatible conc progs.
Situation- prog A is incompatible with prog B. Another conc prog C (pl/sql code) submits B and A in sequence. Intention was to execute B and after completion, execute A. But somehow A started executing before B.
I removed the incompatiblity and from conc prog defn of B, I added A as incompatible. (Earlier the incompatibily was added from conc prog defn of A). Everything went fine as expected!
Can it happen that the conflict resolution manager is not able to handle requests submitted with an interval of nano-seconds? Or is it just the way oracle works?

Could you please through some light on this?

Thanks in advance,
Amitabha Dutta
...
written by Anil Passi , April 04, 2007
Hi Amitabha

Never tried this.
But to overcome this you may use wait_for_request or even give sleep for couple seconds.

Thanks,
Anil Passi
...
written by ashok varma , July 13, 2007
hello anil
this website, i came across while i am under training in chicago and still under training since a month........i feel that this site is really good one for the beginners.....
thanx for making one where oracle aspirers like me can benefit.

thanx in advance
ashok varma alluri
How to define a concurent manager
written by praveen_poonia , October 08, 2007
Hi Anil,

I have fresh oracle 12r on my system and there is no concurent manager is running please how am i supposed to do that?
thanks
Praveen
...
written by sharmistha , November 26, 2007
Hi
I am a new visitor in this site and after a long time I have found one site which is very helpful for the freshers in Oracle Application.I was trying to find the site which gives a clear concepts in basic and I find this site to be very helpful for me.
Thanks a Lot
...
written by Sujit , January 24, 2008
Hi Anil Passi,

I have defined a concurrent program and attached it to a function in a particular responsibility. In order to define a conc pgm as a function one has to pass parameters like program name, use org etc... one of the parameters there is 'TITLE'. This is the title that appears on the conc pgm submission window when submitting the attached pgm. All the seeded programs attached to a function have a title being passed. The application then translates the title into a meaningful title. I am unable to figure out where to define a title for my program in order do display a meaningful title for my program.

Any inputs regarding this would be highly appreciated!.

-Thanks
Sujit
---
written by Durga Prasad , January 29, 2008
The site is awesome, thanks for sharing all the knowledge that you have.
You must be logged in to a comment. Please register if you do not have an account yet.

busy