Setting Up and Starting Concurrent Managers

Concurrent Managers

Oracle E-Business Suite concurrent managers run processes in the background on a server machine. You must set up and start the concurrent managers for each product group before you can use your Oracle E-Business Suite products. Refer to the Maintaining Oracle E-Business Suite documentation set for more information on the adcmctl script for starting and stopping concurrent managers. The instructions in this section apply whether you are installing or upgrading.

Note: Run your concurrent managers on machines with hostnames of 30 or fewer characters. Managers may fail to run on machines with longer hostnames.

Setting Up Concurrent Managers

For UNIX

Keep the following in mind when you start the concurrent managers:

Parameter values set in startmgr override any other values. Command line values override environment and default values, and so on. Another section in this manual contains more information on editing the startmgr script.

You can change directory privileges while the managers are running, and the changes will be effective immediately. You can change environment variables and startup parameters while the managers are running, but your changes will not take effect until the concurrent managers are restarted. To put changes into effect, shut down the managers, make the necessary modifications, and restart the managers.

For Windows

On Windows platforms, the OracleConcMgr<SID> service (where <SID> is the database <SID> and the value of the LOCAL variable) spawns the concurrent manager programs. The OracleConcMgr<SID> service is initially created by the Rapid Install program. If you need to recreate the service, use one of the following two methods:

Method 1

From the command prompt:

C:\> cd %COMMON_TOP%\admin\install 
C:\> adsvcm.cmd <NT User> <NT Password> 

where NT User is the user that runs the concurrent manager service, and NT Password is the password of the user that runs the service.

Method 2

Invoke the GUI program ccmsetup.exe (located in %FND_TOP%\bin), and choose the option to create the service.

Parameters

The following entries describe the concurrent manager startup parameters, which are read by the concurrent manager service and passed to the concurrent manager programs. The GUI program ccmsetup.exe (located in %FND_TOP%\bin) should be used to create and set these parameters in the Windows registry. Note that the registry settings override defaults. These parameters can also be used by the adcmctl.cmd script (see the Maintaining Oracle E-Business Suite documentation set for more information).

Database Connection

Variable Description
Schema Name The APPS schema name should be set to the APPS user ID.
Password This is the password to the Oracle E-Business Suite account in the database.
TNS Aliasname This is the database <SID>.

Server Startup

Variable Description
Use this Account Check the "Use this Account box" to specify the OS account ( <NT User> and <NT Password>) that runs the CCM service. If you do not check this box, the system account launching the service will not have permission to access network resources.

Startup Options

Variable Description
Sleep Number of seconds (integer) the internal concurrent manager waits between times it looks for Queue Controlled (in statuses Deactivate/Abort/Verify/Activate) requests. The default value is 60.
Restart Number of minutes (integer) the internal concurrent manager waits before attempting to restart after abnormal termination. The default value prevents the manager from restarting after abnormal termination. The default value is N.
Queue Size Number of pmon cycles (integer) the internal concurrent manager waits between times it checks for normal changes in concurrent manager operation. Normal changes include the start or end of a work shift and changes to concurrent manager definitions entered in the Concurrent Managers form. The default value is 1.
PMON cycle Number of sleep cycles (integer) the internal concurrent manager waits between times it checks for concurrent managers that have failed while running a concurrent request. The default value is 20.
Printer Name Name of the printer to which the concurrent managers send request output, where the requests are submitted from within a concurrent program if the submitting program (parent request) does not have a printer associated with it.
Enable Distributed Concurrent Processing Check this box to enable distributed concurrent processing.

Shutdown

Variable Description
Deactivate/ Normal Shuts down the concurrent managers using normal shutdown methods.
Terminate/Abort Processes When shutting down the concurrent managers, aborts the concurrent managers.

Note: This option is currently disabled. Checking this box will have no effect.

File Logging

Variable Description
Activation Log The name of the log file generated upon startup of the Internal Concurrent Manager. Defaults to CM_<SID>.log.
Deactivation Log The name of the log file generated upon shutdown of the Internal Concurrent Manager. Defaults to CS_<SID>.log.
Record Diagnostic Messages Checking this box will cause concurrent managers to produce diagnostic output regularly. Note that leaving this box unchecked prevents large log files.
Save Log History Checking this box prevents log files from being overwritten when the concurrent manager is started.

Starting the Concurrent Managers

Before starting the concurrent managers, you must start the Oracle E-Business Suite TNS listener on all nodes. The TNS listener must be started by the applmgr user.

For UNIX

You can start the concurrent managers from by running the script startmgr from the operating system command line. To start the concurrent manager from the operating system prompt, use the following syntax:

$ startmgr \
sysmgr="<APPS username>/<APPS password>" \
mgrname="<name>" \
PRINTER="<printer>" \
mailto="<userid1 userid2...>" \
restart="N|<minutes>" \
logfile="<filename>" \
sleep="<seconds>" \
pmon="<cycles>" \
quesiz="<cycles>" \
diag="Y|N"

All parameters are optional. You can pass parameters to the script in any order. These parameters can also be used by the adcmctl.sh script (see the Maintaining Oracle E-Business Suite documentation set for more information).

Parameters

The following entries describe the concurrent manager startup parameters. The default values apply if you do not specify different values in the startmgr script, on the command line when you run startmgr, or in your environment.

Variable Description
sysmgr APPS schema name should be set to the APPS schema user ID and password. You will be prompted for the password if you omit the parameter and use the default value. The default value is $FNDNAM.
mgrname Name of the internal concurrent manager (alphanumeric characters only). The default value is std.
PRINTER Name of the printer to which the concurrent managers send request output, where the requests are submitted from within a concurrent program if the submitting program (parent request) does not have a printer associated with it.
mailto List of users who receive mail when the internal concurrent manager stops running. The default value is the user who starts managers.
restart Number of minutes (integer) the internal concurrent manager waits before attempting to restart after abnormal termination. The default value is N. The default value prevents the manager from restarting after abnormal termination.
logfile The name of the internal concurrent manager's log file. The default value is <mgrname.mgr>.
sleep Number of seconds (integer) the internal concurrent manager waits between times it looks for Queue Controlled (in statuses Deactivate/Abort/Verify/Activate) concurrent requests. The default value is 60.
pmon Number of sleep cycles (integer) the internal concurrent manager waits between times it checks for concurrent managers that have failed while running a concurrent request. The default value is 20.
quesiz Number of pmon cycles (integer) the internal concurrent manager waits between times it checks for normal changes in concurrent manager operation. Normal changes include the start or end of a work shift and changes to concurrent manager definitions entered in the Concurrent Managers form. The default value is 1.
diag diag=Y tells all concurrent managers to produce diagnostic output regularly. The default value diag=N prevents large log files.

Example

$ startmgr sysmgr="apps/apps" \
mgrname="std" \
PRINTER="hqseq1" \
mailto="jsmith" \
restart="N" \
logfile="mgrlog" \
sleep="30" \
pmon="5" \
quesiz="2"

For Windows

The OracleConcMgr<SID> service is launched from the Control Panel Services applet. It can also be launched from the command line using the following command:

C:\> net start OracleConcMgr<SID> 

Restarting the Concurrent Managers

You must restart the concurrent managers whenever you start the Oracle8i Server database or change the concurrent manager startup parameters.

On UNIX platforms, concurrent managers append to their own log file if the log files exist when they restart. Therefore, the user who restarts the concurrent managers must either own the existing files, have write privilege for them, or delete them before restarting.

On Windows, the concurrent manager logs are overwritten when the concurrent managers are restarted. Checking the "Save Log History" option in the ccmsetup GUI tool saves the previous log files.

The concurrent managers delete temporary files when each concurrent process finishes. If the concurrent managers stop abnormally, however, they may not delete these files.

Tip: Delete temporary files only if they have not been accessed more recently than a few days ago. This helps to prevent the loss of files required by the operating system or the concurrent managers.

Ideally, delete temporary files during maintenance windows when the database is down and no applications programs are active.

Network Failure Recovery

As part of its shutdown process, the ICM determines if it’s being forced to shutdown due to losing its database connection. This is done by looking for specific error messages ORA-3113, ORA-3114, or ORA-1041. If one of these error messages is detected, the ICM spawns the reviver process, which attempts to make a database connection. If unsuccessful, it sleeps for a period before trying again. This continues until either a successful connection is made or it receives a signal to shut itself down.

When a successful connection is made, the process kills the old ICM database session, and then starts a new ICM using the normal start manager script. Once the ICM is restarted, it starts up any other managers that had also shut down, and normal processing resumes.

Shutting Down the Concurrent Manager Service (Windows)

The OracleConcMgr<SID> service may be shut down from the Control Panel Services applet. It can also be stopped from the command line using the following command:

C:\> net stop OracleConcMgr<SID> 

Although you can shut down concurrent managers from Oracle E-Business Suite System Administrator's responsibility, this does not stop the concurrent manager service. You must still stop the concurrent manager service from the Windows Control Panel Services applet before you can restart the concurrent managers.

Note: The OracleConcMgr<SID> service may take several minutes to shut down because it needs to finish processing currently running requests.

Warning: Do not use the Task Manager to stop the concurrent manager service or other Applications processes unless you are advised to do so by Oracle Worldwide Support.

Removing the Concurrent Manager Service (Windows)

If you need to remove the concurrent manager service, ensure that it is not running.

To remove or delete the OracleConcMgr<SID> service, use one of the following 2 methods:

Method 1

At the command prompt, type:

C:\> cd %COMMON_TOP%\admin\install 
C:\> adsvcm.cmd -deinstall 

Method 2

Invoke the GUI program ccmsetup.exe, and choose the option to remove the service.

Once you have done this, you will need to reinstall the concurrent manager service in order to process concurrent requests.

File Conventions

The following tables list the locations and file naming conventions for log, output, and temporary files. The location of product log and output files depends on whether you have set up a common directory.

For UNIX

File Type Location Filename
Internal Concurrent Manager Log $FND_TOP/$APPLLOG with Common Directory: $APPLCSF/$APPLLOG <mgrname>.mgr
Concurrent Manager Log $FND_TOP/$APPLLOG with Common Directory: $APPLCSF/$APPLLOG w<nnn>.mgr
Request Log Default: $<PROD>_TOP/$APPLLOG with Common Directory: $APPLCSF/$APPLLOG l<request ID>.req
Request Output Default: $<PROD>_TOP/$APPLOUT with Common Directory: $APPLCSF/$APPLOUT o<request ID>.out
Temporary $APPLTMP or $REPORTS60_TMP OF<abcd12345>.t where <abcd12345> is a random OS-generated string

Parameters

The variable parameters have the following values:

Variable Description
mgrname For UNIX, the name specified with the mgrname parameter in the startmgr command. If no name is specified, the filename is std.mgr.
For Windows, the name specified with the mgrname parameter in the ccmsetup.exe program. If no name is specified, the filename is std.mgr.
nnn A sequence number between 1 and 999 is generated by the concurrent processing facility.
<PROD>_TOP The product's top environment variable, such as GL_TOP.
request ID The number that identifies the concurrent request.
USERNAME Up to eight characters (uppercase) of the application username of the user that requested the concurrent process.
<abcd12345> Naming convention in which <abcd> are random letters and <12345> designate the operating system process ID of the concurrent process that generated the file.

Directory Privileges

Oracle recommends that you start the managers from the applmgr login to ensure that they inherit the correct directory privileges. The user who starts the concurrent managers then owns the log and output files that the concurrent managers create.

Oracle recommends that you start the managers from the applmgr login to ensure that they inherit the correct directory privileges.

For UNIX, any user who runs an environment file and has access to the startmgr script can start the concurrent managers.

Warning: Always start the concurrent managers from the applmgr login if you are using parallel concurrent processing on multiple nodes.

For UNIX

This section describes directory privileges for UNIX.

Setting the startmgr User ID with setuid in UNIX

To ensure that startmgr inherits the applmgr directory privileges, you can use the UNIX setuid facility to set startmgr to the applmgr login's UNIX user ID. The concurrent managers then inherit the applmgr privileges no matter which login runs startmgr. This allows you to start or restart concurrent managers using the Administer Concurrent Managers form, regardless of the originating UNIX login. Note that you must reset the user ID with setuid if you modify or copy startmgr. Refer to your online UNIX documentation for information on setuid.

Note: The use of the setuid command may cause unexpected behavior on certain platforms that employ dynamic linking of libraries. Please refer to the Oracle E-Business Suite Installation Update for your platform for any information regarding this problem.

Directory Privileges for Logins other than applmgr

If you do not set the startmgr script to the applmgr user ID and you start the managers from a login other than applmgr, that login needs to have these privileges:

You can verify that a login has the necessary privileges on a certain directory with this command:

$ ls -ld < directory> 

Here is an example:

$ ls -ld /usr/tmp
drwxrwxrwx 3 root 22880 Mar 10 11:05 /usr/tmp
      ^^^

The three letters marked in the sample response indicate that all users have read, write, and execute privilege for the directory.

Printing

This section contains printer reference material including information on how to create and register executable printing programs.

To register printers in the Printers window of Oracle E-Business Suite, your Oracle E-Business Suite System Administrator needs to know each printer's operating system name. Your installation update tells you where to find the printer names for your platform. Installation updates may also contain other information on setting up your printers.

Printing (for UNIX)

This section contains printer reference material specific to the UNIX operating system, including information on how to create and register executable printing programs.

Standard Print Subroutine

The standard printing subroutine that you can select in the Printer Drivers form uses Oracle Application Object Library routines to print reports. This requires fewer machine resources than printing through a customized executable program or a shell command such as lp or lpr.

When you use the subroutine, there may be options available through the descriptive flexfield at the bottom of the form. These options vary by platform and may include the following: mail Notify user by electronic mail when report finishes printing.

Check your installation update for any additional options available on your platform.

Executable Printing Programs

Oracle E-Business Suite supports the use of executable programs for printing. However, we recommend that you use executable programs only to provide features unavailable through Oracle E-Business Suite printer drivers, such as:

If you do not need to support special features such as these, print through the standard printing subroutine and printer drivers defined in the Oracle E-Business Suite database. This makes the most efficient use of machine resources.

Upgrading to Existing Executable Programs

Because printing through the standard printer subroutine uses machine resources more effectively than printing through executable programs, we recommend the following if you used executable printing programs in the previous release of Oracle E-Business Suite.

Writing an Executable Program

Executable printing programs can format report output through escape sequences or a printer programming language. Creating them requires a thorough knowledge of both printer operation and a computer programming language. Follow the guidelines in this section if you need to create an executable printing program.

Printer Styles

An executable program should be able to format report output for various print styles, including these:

Formatting Arguments

If the program handles formatting for various print styles internally, you can pass arguments from the printer drivers to the program to determine which print style to use.

If the program does not contain print style formatting commands, you can define the commands in a shell script that calls the program. You then define the shell script as the printing program in a printer driver and pass arguments that determine the print style from the driver to the script.

The printer driver that calls the executable program or shell script must be able to pass the following arguments:

Initialization and Reset

You do not have to add printer initialization and reset strings to your program if you can define these strings in the Printer Drivers form.

Character Mode Oracle Reports Commands

We recommend that you design your executable programs to work with the standard Oracle Reports print drivers. The following standard drivers are located in the $FND_TOP/$APPLREP directory:

The program should not misinterpret the commands for bold on, bold off, and page size that the standard drivers imbed in Oracle E-Business Suite reports. If necessary, you can create customized Oracle Reports drivers as described below.

Location of Program

When you have compiled and linked the source code or written a shell script, move the program to the $APPLBIN subdirectory under the top directory of your custom development area. Keep copies of the source file in your custom development area as a backup.

Creating Customized Character Mode Oracle Reports Print Drivers

The Oracle Reports print drivers set the font styles for italics, underlining, and bolding. If your executable printing program cannot use the standard Oracle Reports drivers, create a customized driver for each print style you will use with the program.

To create a customized driver, copy L.prt, P.prt, A.prt, or W.prt from $FND_TOP/$APPLREP to your custom development area. Modify a standard driver as needed for your executable printing program. Give the customized driver a new filename but keep the .prt extension. Then copy the customized driver to $FND_TOP/$APPLREP.

Tip: Use the executable program name and print style letter as the driver name. For example, use HPLJ3P.prt for portrait style printing with the executable program HPLJ3. When you print in portrait style with this program, the concurrent managers pass the HPLJ3P.prt driver to Oracle Reports as DESFORMAT=HPLJ3P.

Registering Executable Programs

When you have created your executable programs and, optionally, your shell scripts and Oracle Reports drivers, register them in the Printer Drivers form.

  1. Navigate to the Printer Drivers window and create a new printer driver name. Also add the user name, description, and platform.

  2. In the SRW Driver field, enter the name (without the .prt extension) of a standard or customized Oracle Reports driver. All drivers must be in the directory $FND_TOP/$APPLREP.

  3. Enter Program as the driver method.

  4. Enter No in the Spool File field.

  5. Enter No in the Standard Input field.

  6. In the program name field, enter the name of the executable program or the shell script that calls it. Include the full path name if this file is not in the $FND_TOP/bin directory.

  7. Add the arguments that Oracle E-Business Suite passes to the program or shell script. The driver must pass the following to the executable program:

    • Name of the destination printer

    • Number of copies to print

    • Banner on title page

    • Filename

    • Add the initialization and reset strings to the appropriate fields if the program does not send these strings to the printer.

Printing (For Windows)

This section contains printer reference material specific to the Windows operating system. It also explains how to create and register executable printing programs.

Operating System Names for Printers

To register printers in the Printers window of Oracle E-Business Suite, your Oracle E-Business Suite system administrator needs to know each printer's operating system name. For Windows, you can obtain the printer's name from the Printers folder in My Computer. If you register an invalid printer, the operating system's default printer will be used instead.

Standard Print Subroutine

The standard printing subroutine that you can select in the Printer Drivers form uses Oracle Application Object Library routines to print reports. This requires fewer machine resources than printing through a customized executable program DOS command such as PRINT.

Executable Printing Programs

Oracle E-Business Suite supports the use of executable programs for printing. However, we recommend that you use executable programs only to provide features unavailable through Oracle E-Business Suite printer drivers, such as:

If you do not need to support special features such as these, print through the standard printing subroutine and printer drivers defined in the Oracle E-Business Suite database. This makes the most efficient use of machine resources.

Upgrading Existing Executable Programs

Because printing through the standard printer subroutine uses machine resources more effectively than printing through executable programs, we recommend the following if you used executable printing programs in the previous release of Oracle E-Business Suite:

Writing an Executable Program

Executable printing programs can format report output through escape sequences or a printer programming language. Creating them requires a thorough knowledge of both printer operation and a computer programming language. Follow the guidelines in this section if you need to create an executable printing program.

Printer Styles

An executable program should be able to format report output for various print styles, including these:

Formatting Arguments

If the program handles formatting for various print styles internally, you can pass arguments from the printer drivers to the program to determine which print style to use.

If the program does not contain print style formatting commands, you can define the commands in a command file that calls the program. You then define the .cmd file as the printing program in a printer driver and pass arguments that determine the print style from the driver to the script.

The printer driver that calls the executable program or .cmd file must be able to pass the following arguments:

Initialization and Reset

You do not have to add printer initialization and reset strings to your program if you can define these strings in the Printer Drivers form.

Character Mode Oracle Reports Commands

We recommend that you design your executable programs to work with the standard Oracle Reports print drivers. The following standard drivers are located in the %FND_TOP%\%APPLREP% directory:

The program should not misinterpret the commands for bold on, bold off, and page size that the standard drivers imbed in Oracle E-Business Suite reports. If necessary, you can create customized Oracle Reports drivers as described in the next section.

Location of Program

When you have compiled and linked the source code or written a command file, move the program to the %APPLBIN% subdirectory under the top directory of your custom development area. Keep copies of the source file in your custom development area as a backup.

Creating Customized Character Mode Oracle Reports Print Drivers

The Oracle Reports print drivers set the font styles for italics, underlining, and bolding. If your executable printing program cannot use the standard Oracle Reports drivers, create a customized driver for each print style you will use with the program.

To create a customized driver, copy L.prt, P.prt, A.prt, or W.prt from %FND_ TOP%\%APPLREP% to your custom development area. Modify a standard driver as needed for your executable printing program. Give the customized driver a new filename but keep the .prt extension. Then copy the customized driver to %FND_ TOP%\%APPLREP%.

Tip: Use the executable program name and print style letter as the driver name. For example, use HPLJ3P.prt for portrait style printing with the executable program HPLJ3. When you print in portrait style with this program, the concurrent managers pass the HPLJ3P.prt driver to Oracle Reports as DESFORMAT=HPLJ3P.

For more information, see the Oracle Reports Developer documentation.

Registering Executable Programs

When you have created your executable programs and, optionally, your Oracle Reports drivers, register them in the Printer Drivers form.

Define a printer driver and corresponding print style for each print style that your executable program supports. Complete the following steps to register an executable program for a printer driver:

  1. Navigate to the Printer Drivers form and create a new printer driver name. Also add the user name, description, and platform.

  2. In the SRW Driver field, enter the name (without the .prt extension) of a standard or customized Oracle Reports driver. All drivers must be in the directory %FND_TOP%\%APPLREP%.

  3. Enter Program as the driver method.

  4. Enter No in the Spool File field.

  5. Enter No in the Standard Input field.

  6. In the Program Name field, enter the name of the executable program or the command file that calls it. Include the full path name if this file is not in the %FND_TOP%\bin directory.

  7. Add the arguments that Oracle E-Business Suite passes to the program or command file. The driver must pass the following to the executable program:

    • Name of the destination printer

    • Number of copies to print

    • Banner on title page

    • Filename

    • Add the initialization and reset strings to the appropriate fields if the program does not send these strings to the printer.

Related Topics

Overview of Printers and Printing

Printer Drivers Window