EBSintermediate
Concurrent Programs and Concurrent Manager
Explain how batch and report processing is orchestrated in EBS through concurrent programs
A concurrent program runs in the background. The concurrent manager is what picks it up and runs it.
The concurrent manager is like a restaurant's order queue system — tickets (requests) pile up, and the head chef (ICM) assigns tickets to available cooks (worker processes) based on which station (specialized manager) is free and which dishes can't be cooked at the same time (incompatibilities).
Key Concepts
1
This is how all batch work in EBS happens — reports, interfaces, period-end processes.
2
The two halves of a definition.
executable points at the actual code: a PL/SQL procedure,
a SQL*Loader script, a Java program, a BI Publisher
report
program the parameters, the output format, and the
incompatibilities3
Registering a new program means creating both, then adding it to a request group and attaching that
group to a responsibility — otherwise it exists and nobody can run it.
4
That last step is the one people miss: a program that "does not appear in the list" is almost always a
missing request group entry, not a broken definition.
5
How a request is dispatched. Submitting a program inserts a row into FND_CONCURRENT_REQUESTS with a
status. A manager process polls that table and runs what it finds.
FND_CONCURRENT_REQUESTS
6
Pending / Normal waiting for a free manager process
Pending / Standby held up by an incompatibility
Running / Normal executing
Completed / Error ran and failed
Completed / Warning ran with problems7
"Pending / Standby" is diagnostic. It means the program is incompatible with something already running
and is waiting for it to finish. Not a hang — a rule doing its job.
8
Incompatibilities exist to protect data. Two GL posting programs for the same ledger running at once
would corrupt each other's work, so they are declared incompatible and the manager serialises them.
9
Custom managers isolate workloads. The Standard Manager runs everything by default, so one enormous
batch job can occupy every process and starve interactive reports.
10
Standard Manager general work
custom manager long-running jobs only, own process count
Conflict Resolution evaluates incompatibility rules11
Specialisation rules assign programs to managers by name or application. That is the answer to "the month-end
job blocks everyone else".
12
Parameters use value sets. A parameter is validated by a value set — independent (a fixed list), table
(a query against a table), or dependent (its values depend on an earlier parameter). Getting these right is
what makes a program usable rather than a source of bad input.
13
For diagnosis, every request writes a log and an output file, reachable from the request screen. The log
holds the errors; the output holds the report. A program that "did nothing" usually has an informative log
nobody opened.
14
What the interviewer is probing.1. "What does the concurrent manager do?" Probing: the fundamentals. Stalls: "Runs jobs."
Moves up: queues and dispatches background requests against defined worker capacity, with
specialisation rules deciding which manager takes what.
15
2. "A request is stuck in Pending — what do you check?" Probing: the practical skill.
Stalls: "Resubmit it." Moves up: whether managers are running, the target versus actual process
count, conflict resolution for an incompatible program, and specialisation rules.
16
3. "What are incompatibilities for?" Probing: the mechanism. Stalls: "Nothing." Moves up:
preventing two programs running at once when they would conflict on the same data, which the
conflict resolution manager enforces.
17
4. "How do you register a custom program?" Probing: the process. Stalls: "Just run it."
Moves up: define the executable, the concurrent program and its parameters, then attach it to a
request group tied to a responsibility.