# Compaq ACMS for OpenVMS
ADU Reference Manual

Previous | Contents | Index

# ENABLE Subclause (Task)

> Specifies that a task is available for selection by task submitters.

## Format

## Clause Default

> The ENABLE subclause is optional. Tasks are enabled by default.

## Notes

> You can modify the ENABLE attribute by using the ACMS/MODIFY APPLICATION command. See Compaq ACMS for OpenVMS Managing Applications for information about modifying active applications.

## Example

    TASK ATTRIBUTES
        ADD_EMPLOYEE:
            ENABLE;
            TASK ADD_EMPLOYEE;
            LOCAL;
        REVIEW_UPDATE:
            TASK REVIEW_UPDATE;
            DISABLED;
    END ATTRIBUTE;

> This TASK ATTRIBUTES clause specifies that ADD_EMPLOYEE is enabled and available for selection by task submitters, but REVIEW_UPDATE is disabled and not available for selection by task submitters.

# FIXED USERNAME Subclause (Server)

> Specifies that the user name, UIC, and default directory of the server are those associated with the user name under which the server process starts.

## Format

> FIXED USERNAME ;

## Clause Default

> The ACMS-supplied default is FIXED USERNAME. This subclause is optional.

## Notes

> If you do not set the DYNAMIC/FIXED USERNAME attribute in the SERVER ATTRIBUTES clause, ACMS uses the setting you assign in the task group definition. If you do not make an assignment there, ACMS uses FIXED USERNAME as the default.

> If you define a server to have a fixed user name, the server always keeps the user name, UIC, and default directory under which it starts.

## Example

    SERVER ATTRIBUTE IS
      PERSONNEL_SERVER: FIXED USERNAME;
    END SERVER ATTRIBUTE;

> In this example, PERSONNEL_SERVER is a server with a fixed user name.

# GLOBAL Subclause (Task)

> Specifies that you can select a task from a menu, call it from an agent, or call it from another task.

## Format

> GLOBAL ;

## Clause Default

> The GLOBAL subclause is optional. If no GLOBAL or LOCAL attribute is specified in either the task definition or the application definition, a task is global by default. You can select the task from a menu, call it from an agent, or call it from another task.

## Example

    TASK ATTRIBUTES
        ADD_EMPLOYEE:
            ENABLE;
            TASK ADD_EMPLOYEE;
            LOCAL;
        REVIEW_UPDATE:
            DISABLED;
            TASK REVIEW_UPDATE;
            GLOBAL;
    END ATTRIBUTE;

> In this example, the TASK ATTRIBUTES clause specifies that REVIEW_UPDATE is global and can be selected from a menu, called by an agent, or called by another task, but ADD_EMPLOYEE is local and can be called by another task, but not selected from a menu or called from an agent.

# LOCAL Subclause (Task)

> Specifies that a task can be called by or chained to another task, but not selected from a menu or called by an agent.

## Format

> LOCAL ;

## Clause Default

> The LOCAL subclause is optional. If no GLOBAL or LOCAL attribute is specified in either the task definition or the application definition, a task is global by default and can be selected from a menu, called by an agent, or called by another task.

## Note

> A local task can call or chain to another local task or global task.

## Example

    TASK ATTRIBUTES
        ADD_EMPLOYEE:
            ENABLE;
            TASK ADD_EMPLOYEE;
            LOCAL;
        REVIEW_UPDATE:
            DISABLED;
            TASK REVIEW_UPDATE;
            GLOBAL;
    END ATTRIBUTE;

> In this example, the TASK ATTRIBUTES clause specifies that REVIEW_UPDATE is global and can be selected from a menu, called by an agent, or called by another task, but ADD_EMPLOYEE is local and can be called by another task, but not selected from a menu or called from an agent.

# LOGICALS Subclause (Server)

> Defines a set of process logical names for one or more server processes.

## Format

## Parameters

> ### logical-name

> A 1- to 255-character logical name. If it contains nonalphabetic characters or exceeds 31 characters, enclose the string in quotation marks (" ").

> ### equivalence-name

> The 1- to 255-character equivalence name for the logical name in the logical name table. If it contains nonalphabetic characters or exceeds 31 characters, enclose this parameter in quotation marks (" ").

> ### logical-string

> A 1- to 255-character logical string.

> ### equivalence-string

> The 1- to 255-character equivalence string for the logical name in the logical name table.

## Clause Default

> This subclause is optional. ACMS does not set up any server process logical names by default, other than the standard ones. The following logicals are always defined unless the job logical name table LNM$JOB is excluded in the SERVER NAME TABLES clause in the application definition:
> - SYS$LOGIN
> - SYS$SCRATCH

> SYS$DISK is always defined.

> ACMS automatically assigns a set of logical names for the DCL servers you define:

> - SYS$INPUT
> - SYS$OUTPUT
> - SYS$ERROR
> - SYS$COMMAND
> - TT

> However, if you define NO TERMINAL I/O for a DCL server, you must redefine the above logicals for that server.

> For procedure servers, if the processing step uses a terminal, ACMS defines:

> - SYS$INPUT
> - SYS$OUTPUT
> - SYS$ERROR
> - SYS$COMMAND
> - TT

## Notes

> ACMS sets up the process logical names when each server process is started.

> The logical names are available only to the server for which they are defined.

> You can include more than one LOGICALS subclause in a definition. ADU assigns all the logicals you name.

> If an ACMS user wants a permutation of DATATRIEVE to run an ACMS DTR procedure, a server logical must be assigned that equates DTR32 to the new image DTR32xx.EXE, where xx represents the letters you choose to make the file name unique.

> For example:

>     SERVER ATTRIBUTE IS
>       SAMPLE_SERVER:
>         LOGICAL NAME IS DTR32 = "SYS$SYSTEM:DTR32FM.EXE";
>     END SERVER ATTRIBUTE;

> After debugging your server, you can improve the speed at which it maps the workspaces it uses by defining the ACMS$PROTECT_WORKSPACES logical name. For example:

>     SERVER ATTRIBUTE IS
>       UPDATE_SERVER:
>         LOGICAL NAME IS ACMS$PROTECT_WORKSPACES = "NO";
>     END SERVER ATTRIBUTE;

> When this logical name is defined as "NO", ACMS maps the entire task instance workspace pool during the first procedure call to the server. The workspaces then stay mapped until the server runs down. Use this option carefully. Since it maps the entire task instance workspace pool for the task group, a procedure in one task can accidentally write over workspaces belonging to another task in the same group.

> The default definition of ACMS$PROTECT_WORKSPACES is "YES", which causes ACMS to map only the portion of the task instance workspace pool used by the current task. The portion is mapped at the start of each processing step and unmapped at the end of each step. This ensures that one task's workspaces are protected from accidental corruption by another task, but requires additional processing overhead.

> Note You can achieve the same functionality as the ACMS$PROTECT_WORKSPACES logical by using the PROTECTED WORKSPACES subclause. In general, it is more efficient to use the PROTECTED WORKSPACES subclause than the ACMS$PROTECT_WORKSPACES logical.

##

### Examples

#1
    LOGICAL NAME IS A_EMPLOYEE = "ACMS$SAMPLE:EMPLOYEE.ADF";

> This example defines A_EMPLOYEE so you can use it in place of the equivalent name ACMS$SAMPLE:EMPLOYEE.ADF.

#2
    LOGICAL A_EMPLOYEE = "ACMS$SAMPLE:EMPLOYEE.ADF",
            G_EMPLOYEE = "ACMS$SAMPLE:EMPLOYEE.GDF";

> This example defines the application and task group definition files so they are easier to use. The LOGICALS subclause allows more than one entry. Place a comma (,) at the end of each entry and a semicolon (;) at the end of the clause. The keywords NAME IS are optional.

# MAXIMUM SERVER PROCESSES Clause (Application, Server)

> Sets the maximum number of OpenVMS processes that can be created for an application or for a particular server within an application. This number cannot exceed the maximum number of processes that can be created for any given system (determined by the SYSGEN parameter MAXPROCESSCNT).

## Format

## Keyword

> ### UNLIMITED

> Sets no limit on the number of OpenVMS processes that can be created for the application or server.

## Parameter

> ### high-number

> The largest number of server processes that you want the application execution controller to assign at one time. The value you use must be a decimal number in the range 0 to 65535.

## Clause Default

> The default is MAXIMUM SERVER PROCESSES IS UNLIMITED. This clause is optional.

## Notes

> The maximum limit that ACMS uses for server processes depends on:
> 1. The value your system manager sets for the maximum number of processes OpenVMS can create (MAXPROCESSCNT)
> 2. The value you define for the MAXIMUM SERVER PROCESSES clause at the application level
> 3. The sum of the values you define for all MAXIMUM SERVER PROCESSES subclauses for all servers you name at the server level

> ACMS uses the smallest of these three values to determine the limit on maximum server processes.

> In calculating the final value, ACMS determines first whether the value you set at the application level is less than or greater than the sum of the values you set for all servers in the application. At run time, ACMS compares the smaller of these two values with the maximum number of OpenVMS processes that can be created on the system (MAXPROCESSCNT). It selects the lower number as the maximum server processes limit.

> The sum of the values you define in all MINIMUM SERVER PROCESSES subclauses for the servers in an application must be less than the value you assign in the MAXIMUM SERVER PROCESSES clause at the application level.

## Application Clause Examples

#1
    MAXIMUM SERVER PROCESSES IS 25;

> This clause lets the execution controller for this application create up to 25 server processes to run tasks.

#2
    MAX PROCESSES 50;

> In this example, the maximum number of server processes that you want available for the application is 50. You can abbreviate MAXIMUM. The keywords SERVER IS are optional.

## Server Subclause Example

#1
    MAXIMUM SERVER PROCESSES IS 5;

> ACMS creates a maximum of five server processes to do the work for the tasks associated with this server or set of servers.

# MAXIMUM TASK INSTANCES Clause (Application)

> Sets the largest number of task instances that can be active at one time for an application.

## Format

## Keyword

> ### UNLIMITED

> Sets no limit on the number of task instances ACMS permits for an application.

## Parameter

> ### high-number

> The largest number of task instances that you want active at one time. You can assign a decimal integer in the range 0 to 65535.

## Clause Default

> The default is MAXIMUM TASK INSTANCES IS UNLIMITED. This clause is optional.

## Notes

> Increasing the value for the MAXIMUM TASK INSTANCES clause increases the amount of file limit, AST limit, and other quotas required for an application execution controller. See Compaq ACMS for OpenVMS Managing Applications for information on the quotas and privileges required for ACMS application execution controllers.

##

### Examples

#1
    MAXIMUM TASK INSTANCES IS 25;

> The application to which you assign this clause allows up to 25 task instances at one time. This means that up to 25 separate tasks, 25 instances of the same task, or a combination can be active simultaneously.

#2
    MAX INSTANCES UNLIMITED;

> This example sets no ceiling on the number of simultaneously active task instances. If the tasks in the application you are defining use very few resources, you might decide to set no ceiling on the number of simultaneously active task instances. This setting is the default.

# MINIMUM SERVER PROCESSES Subclause (Server)

> Sets the minimum number of server processes that you want ACMS to have available for a server at one time.

## Format

## Parameter

> ### low-number

> The smallest number of server processes allocated to the server when the application is started and running.

## Clause Default

> The ACMS-supplied default is zero. This subclause is optional.

## Notes

> The sum of the values assigned in all MINIMUM SERVER PROCESSES subclauses for all servers in the application must not exceed the value assigned in the MAXIMUM SERVER PROCESSES clause for the application.

> Do not specify nonzero values for the MINIMUM SERVER PROCESS subclause of servers with USERNAME OF USER. If you do, the application execution controller cannot start the application; the application execution controller cannot allocate the server process until it has the user name under which the server runs. The error reported by the ACMS /START APPLICATION command is "Servers using the Username of Submitter must have no minimum server processes".

##

### Examples

#1
    MINIMUM SERVER PROCESSES IS 5;

> When the application is started, ACMS creates five processes for this server.

#2
    MINIMUM PROCESSES 2;

> When the application is started, ACMS creates two processes for this server. The keywords SERVER IS are optional.

# NAME TABLES Subclause (Server)

> Specifies one or more logical name tables the server process can use.

## Format

## Parameters

> ### logical-name-table

> An identifier that is a valid OpenVMS logical name table.

> ### quoted-string

> A character sequence that begins and ends with a double quote (") and contains a string of 1 to 255 characters.

## Clause Default

> If the NAME TABLES clause is not specified, the default is the definition of LNM$FILE_DEV in the system logical name directory table. This clause is optional.

## Notes

> ACMS uses the NAME TABLES clause to define the process logical name LNM$FILE_DEV. This is the logical name which translates to a search list of logical name tables used whenever file specifications or device names are translated by RMS or the I/O services. This name must translate to a search list of one or more logical name tables and the order they are searched when file specifications are translated. The logical name LNM$FILE_DEV is defined in the server process logical name directory table.

> The server searches these tables at run time for logicals in the order specified, and returns the first match found, if any.

> The order in which you specify the logical name tables is used to define a search list. If you specify this clause, you must also specify the system and group tables that the server can use. Logical names within these tables can be dynamically changed.

> See Compaq ACMS for OpenVMS Managing Applications for further information about translating and retranslating logical name tables on a distributed ACMS system, and OpenVMS documentation for more information on logical names and logical name tables.

## Example

    SERVER DEFAULTS
        NAME TABLES ARE
            LNM$PROCESS,
            LNM$GROUP,
            ACMS$LOG_TABLE,
            LNM$SYSTEM;
        PROTECT WORKSPACES;
        PROCESS DUMP;
    END SERVER DEFAULTS;

> The SERVER DEFAULTS clause in this example specifies that the server process can use the logical name tables LNM$PROCESS, LNM$GROUP, ACMS$LOG_TABLE, and LNM$SYSTEM.

# PROTECTED WORKSPACES Subclause (Server)

> Enables a workspace mapping option that maps the entire task instance workspace pool during the first procedure call to a task server. The workspaces stay mapped until the server runs down.

## Format

## Clause Default

> The default is PROTECTED WORKSPACES. The default action is for the server to map only the portion of the task instance workspace pool used by the current task. This portion is mapped at the start of a processing step and unmapped at the end of the step, ensuring that one task cannot access the workspaces of any other task in the group.

## Notes

> The NO PROTECTED WORKSPACES clause saves workspace mapping time. However, use it carefully, since it maps the entire task instance workspace pool for a task group. It is possible for a procedure in one task to inadvertently write over workspaces for another task in the same group because the procedure server has access to all workspaces for all active tasks in the group.

> Do not use the NO PROTECTED WORKSPACES clause until you have thoroughly debugged your procedure server and are certain that task procedures will not accidentally write over workspaces belonging to another task.

> Use the NO PROTECTED WORKSPACES clause to improve performance when executing processing step procedures.

## Example

    SERVER DEFAULTS
        NAME TABLES ARE
            LNM$PROCESS,
            LNM$GROUP,
            ACMS$LOG_TABLE,
            LNM$SYSTEM;
        PROTECT WORKSPACES;
        PROCESS DUMP;
    END SERVER DEFAULTS;

> In this example, the SERVER DEFAULTS clause specifies that the protected workspaces mapping option is enabled while the server is active.

Previous | Next | Contents | Index