concurrent programs

Concurrent Programs

Concurrent, in English means, simultaneous, happening at the same time. Likewise in Oracle E-Biz, a concurrent program can be termed as a program that runs simultaneously with the application without disturbing the later. So our application is live, and hundreds of thousands of users are accessing our system, and our business needs some reports or some updates at the same time, then how are we going to do that? Oracle E-Biz gives a dedicated server to run Concurrent Programs, which is capable to run the requests without impacting the performance of the actual application. The Concurrent programs can be designed, defined and deployed to help business with these kinds of requirements.

There are four distinct processes involved with the definition of a Concurrent Program

  • Define the Execution File.
  • Define Executable
  • Define Program
  • Deploy the Program into a request group

Defining Execution File

This is the file / code that actually get executed as part of the concurrent program. It could be any of these: PL/SQL Stored Procedure, Oracle Reports, Perl Reports, SQL Loader, SQL*Plus reports, Java Reports, Unix codes etc. The first and the most essential step, is to write the code first. The code must have the Business logic in it. Once the code or file is done, the next step is to registering that in to an Executable.

The Executable

This is the place where we register the code / file with the application. See Figure 3.16 – Defining Executables.

  • Responsibility: Application Developer
  • Navigation: Concurrent -> Executable


(Figure 3.16 –  Defining Messages)


Name of the Executable File

Short Name

The Short Name


The Application in which this Executable is going to be used


Any Description, Free Text

Execution Method

This is the place we tell the system about the type of the code, whether it is a PL/SQL/ Java / Reports / Perl  etc.

Execution File Name

The Name of the File / code that will be executed. Must be in apps Schema in case of reports. For others must be in appropriate folder.

Subroutine Name

If there is any sub routine, that needs to be executed based on the Execution Method. Only opens if the Method is “Immediate”

Execution file path

The path of the execution file, only used with Java Concurrent Program.


The different possible Execution methods are:

  • Host:  It’s written in a language that the OS would understand, something like Unix scripts
  • Immediate: Written with a subroutine written in C or Pro*C.
  • Oracle Reports: It is an Oracle Report
  • PL/SQL Stored Procedure: Written in PL/SQL. 
  • Spawned:  it’s a stand-alone program in C or Pro*C
  • Java Stored Procedure: A Java stored procedure. 
  • Java Concurrent Program:  A program written in Java. 
  • Multi Language Function:  A multi-language support function (MLS function) is a function that supports running concurrent programs in multiple languages.
  • SQL*Loader: A SQL*Loader program. 
  • SQL*Plus:  A SQL*Plus or PL/SQL script. 
  • Request Set Stage Function: It is a PL/SQL Stored Function that can be used to calculate the completion statuses of request set stages. 
  • Perl Concurrent Program: It is a Program written in Perl Scripts.

The Program

As the Executable is all set now, the next step is to define the concurrent program. See Figure 3.17 – Defining Concurrent Programs.

  • Responsibility: Application Developer
  • Navigation: 
  • Concurrent -> Program

(Figure 3.17 –  Defining Concurrent Program)


The name of the Program, this is the name that is going to be used in Submit Request window.

Short name

The short Name, that identifies this program uniquely.


The Application that owns the request.


The Description, free text.


This flag, if unchecked, makes the Program unavailable for run.

Executable Name

The name of the defined Executable.


The Method is updated automatically with the type of executable.


Format Type of output.


Saves the output if flagged.


Prints the output if flagged.

Columns / Rows

The width of rows and columns of the output.


The output format style.


The name of the registered printer on which it should print the output.

Once the Concurrent program is registered, the next task is to set the parameters.

The Parameters

If our code needs parameters, then we must define parameters that will be asked when we put in the request name, and then eventually be passed on to the code being executed. In the Program window, the parameters button leads us to the parameters screen.

 (Figure 3.18 – Defining Concurrent Parameters)



A Sequence number


The Name of the parameter


The Description. Free text.


This flag makes the parameter available to the Program.

Value Set

The Value set attached to the parameter.


The Description of the Value set, auto populated.

Default Type/ Value

The Default type of the Parameter is the value that is going to appear when we open the parameter window in the submit Request screen.

Could be one of these:

Constant: Any Constant Value put in Default Value field

SQL Statement: A Value returned by the SQL statement put in Default Value

Profile: Any of the Profile Values, put in Default Value

Segment: The segment of any flex field


Makes the Parameter a mandatory one to be entered on the request submission

Enable Security

Applies the Security rules on the Value set


Could be put as High, Low or Pair. It works hand in hand with the other parameters.

Display Size

The size of the field that will be used in the submit request to fetch the Value of this parameter.

Concatenated size

The Size of the parameter while all the parameters are concatenated in submit window.


The Prompt against the Parameter field. This name will appear on the submit request screen, as a label against the Parameter in concern.

Token name

The Token name is used as an Identifier in some codes, where we do not pass the parameter explicitly. Like in Reports. The Token name is used in the Reports as a Parameter.