In last post I have already discussed about Concurrent program  and bit on Concurrent manager . Concurrent program are one of core functionality that oracle offered to handle some internal process without affecting other processing. So let take a deep drive for Concurrent Program. Lets start the definition once again.
- A â€œConcurrent programâ€ is an executable file that gets executed by Oracle Applications with the ability to run simultaneously and in the background with other programs.
- Typically, a concurrent program is a long-running, data-intensive task, such as posting a journal or generating a report.
- The execution of these programs is controlled by the Concurrent Manager.
Typical flow of concurrent processing can be best describe in above diagram as discussed in Developer guide
3 W and 1 P for concurrent program
When A concurrent program actually starts ?
... Best answer is Concurrent Program normally running based on:
- When it is scheduled to start
- Whether it is placed on hold,
- Whether it is incompatible (cannot run) with other programs
- Its request priority
The priority of a concurrent request is determined by application user name, and is set by the System Administrator using the Concurrent:Priority user profile option.
The first available concurrent manager compares the request's priority to other requests it is eligible to process, and runs the request with the highest priority.
When choosing between requests of equal priority, the concurrent manager runs the oldest request first.
Often, several programs may be grouped together, as in a request set. Submitting the request set as a whole generates a request ID, and as each member of the set is submitted it receives its own request ID. The set's request ID identifies the Parent request, and each of the individual programs' request ID identifies a Child request.
Life Cycle of a Concurrent Request
A concurrent request has a life cycle consisting of the following phases:
- Pending Request is waiting to be run
- Running Request is running
- Completed Request has finished
- Inactive Request cannot be run
Within each phase, a request's condition or status may change. Below appears a listing of each phase and the various states that a concurrent request can go through.
Concurrent Request Phase and Status
This is chart which shows the conditions by stage.