# Compaq ACMS for OpenVMS
ADU Reference Manual

Previous | Contents | Index

# SERVER ATTRIBUTES Clause (Application)

> Defines the control attributes for individual servers. Both the SERVER ATTRIBUTES and SERVER DEFAULTS clauses use the same subclauses described in Section 5.2.

## Format

## Parameters

> ### server-given-name

> A valid ACMS identifier that names the server in the application. The server given name must be unique in the application definition.

> ### group-server-name

> An identifier that is the name of a server defined in a task group definition associated with the application you are defining. This name defaults to the server given name.

> ### task-group-name

> An identifier that is the name of a task group associated with the application you are defining. This task group name defaults to the last task group name in the immediately preceding TASK GROUPS clause. If you have not yet defined a TASK GROUPS clause in the application source file, you must include this parameter.

> ### server-subclauses

> A set of subordinate clauses that let you define the control attributes for a single server. Refer to Section 5.2 for a list of these subclauses.

## Clause Default

> See the Notes section to learn about the defaults ACMS assigns to server control attributes. This clause is optional.

## Notes

> You can include many servers in one SERVER ATTRIBUTES clause.

> You can include many SERVER ATTRIBUTES clauses in one application definition.

> If you do not include a server in a SERVER ATTRIBUTES clause, its default name is the one you give it in the task group definition.

> You must include at least one subclause for each server you name.

> When you build an application, ADU determines the attributes for each server, and it always assigns a value for each attribute. As with task control attributes, ADU looks at the following places to determine what value to assign for each server control attribute:

> 1. SERVER ATTRIBUTES clause in the application definition
>    If a server attribute is explicitly defined in a SERVER ATTRIBUTES clause, ADU always takes that attribute value for that server. The subclauses used in a SERVER ATTRIBUTES clause apply only to one server.
> 2. SERVERS clause in the task group definition
>    If a server attribute is not explicitly defined for a server in a SERVER ATTRIBUTES clause, and if the attribute is one that could be assigned in a task group definition, ADU looks in the task group database that defines implementation for that server. The two control attributes that can be defined in a task group (rather than application) definition are USERNAME OF TERMINAL USER and DYNAMIC/FIXED USERNAME.
> 3. SERVER DEFAULTS clause in the application definition
>    For any attribute not explicitly defined in the application or the task group definition of the server, ADU uses the defaults that are in effect when the server is defined in the application.
> 4. ACMS-supplied defaults
>    ADU uses the default value supplied by ACMS only if a value is not assigned to that attribute in the application definition SERVER ATTRIBUTES clause, task group definition SERVERS clause, or application definition SERVER DEFAULTS clause that applies to that server.

## Example

    USERNAME IS PERSONNEL;
    TASK GROUP IS
      PERSONNEL_GROUP: TASK GROUP FILE IS "SYS$SAMPLE:PERSONNEL.TDB";
    END TASK GROUP;
    SERVER ATTRIBUTES ARE
      PERSONNEL_SERVER : SERVER PERSONNEL_SERVER IN PERSONNEL_GROUP;
                         USERNAME IS DEPART;
                         LOGICAL NAMES ARE
                           PERS$FILE = "SYS$SAMPLE:PERSONNEL.DAT";
                         MAXIMUM SERVER PROCESSES IS 10;
      UTILITY_SERVER   : SERVER UTILITY_SERVER IN PERSONNEL_GROUP;
                         DYNAMIC USERNAME;
                         DEFAULT DIRECTORY IS USERNAME DEFAULT DIRECTORY;
                         MAXIMUM SERVER PROCESSES IS 20;
    END SERVER ATTRIBUTES;
    END DEFINITION;

> This SERVER ATTRIBUTES clause defines control attributes for two application servers, PERSONNEL_SERVER and UTILITY_SERVER. Both servers belong to the task group PERSONNEL_GROUP named in the TASK GROUPS clause. PERSONNEL_GROUP is a name you create to identify the task group in the application. This given name associates the task group with the task group database file. Because you use the IN PERSONNEL_GROUP phrase for both servers, placement of the SERVER ATTRIBUTES clause after the TASK GROUPS clause is not critical. If you do not name the task group in the SERVER ATTRIBUTES clause, you must put the clause immediately after the TASK GROUPS clause for which the SERVER ATTRIBUTES clause sets the defaults.

# SERVER DEFAULTS Clause (Application)

> Changes one or more current default settings for one or more server control attributes. The changes you make with the SERVER DEFAULTS clause affect all servers defined explicitly or implicitly after the SERVER DEFAULTS clause.

## Format

## Parameter

> ### server-subclauses

> A set of subordinate clauses that let you change the current default settings for all servers in a task group. Section 5.2 lists these subclauses and the defaults that you can change with them.

## Clause Default

> ACMS has a default for each server control attribute that you can change with the SERVER DEFAULTS clause. This clause is optional.

## Notes

> Any server attribute defaults that you do not change in a SERVER DEFAULTS clause retain the previous default settings.

> Any defaults you change with the SERVER DEFAULTS clause can be overridden on a server-by-server basis with a SERVER ATTRIBUTES clause. For any attribute not explicitly defined in the application or the task group definition of the server, ADU uses the defaults in effect when the server is defined in the application. For servers named in a SERVER ATTRIBUTES clause, the definition is explicit and ADU uses the defaults that are in effect when that ATTRIBUTES clause appears in the application definition. Otherwise, ADU uses the defaults that are in effect when it processes the TASK GROUPS clause for the task group containing the server.

## Example

    USERNAME IS PERSONNEL;
    SERVER DEFAULTS ARE
      USERNAME USER1;
      LOGICALS DISK1 = USER_DISK1;
      MAXIMUM PROCESSES 10;
      MINIMUM PROCESSES 1;
    END SERVER DEFAULTS;
    TASK GROUP IS
       PERSONNEL_GROUP: TASK GROUP FILE IS "SYS$SAMPLE:PERSONNEL.TDB";
    END TASK GROUP;
    END DEFINITION;

> This SERVER DEFAULTS clause assigns the user name USER1 to the servers that you define in the PERSONNEL_GROUP task group. It defines a logical name and assigns limits for server processes.

# SERVER MONITORING INTERVAL Clause (Application)

> Controls how often queues are checked to determine whether or not to create or delete new server processes.

## Format

> SERVER MONITORING INTERVAL IS seconds ;

## Parameter

> ### seconds

> The number of seconds ACMS waits between queue reviews. The minimum is one second.

## Clause Default

> The clause is optional. If SERVER MONITORING INTERVAL is not specified, ACMS waits five seconds between queue reviews.

## Notes

> Setting this value too low can adversely affect performance, because ACMS will spend all its resources monitoring its own queues.

> ACMS reviews the queue of tasks waiting for server processes to determine whether or not to create new server processes. It also reviews inactive server processes to determine whether or not to delete them.

> Server subclauses that determine when to create or delete server processes are CREATION DELAY, CREATION INTERVAL, DELETION DELAY, and DELETION INTERVAL.

> Application clauses that determine how many server processes can be created or deleted are MAXIMUM SERVER PROCESSES and MINIMUM SERVER PROCESSES.

## Example

    APPLICATION LOGICAL NAME IS EMPLOYEE = "ACMS$SAMPLE:EMPLOYEE.ADF";
    DEFAULT DIRECTORY IS "DBA2:[ACMS.EMPLOYEE]";
    SERVER MONITORING INTERVAL IS 10;

> In this example, the server monitoring interval is set to 10 seconds. Every 10 seconds ACMS checks the queues of tasks waiting for a server process to determine whether or not to create a new server process. At the same time, ACMS checks inactive server processes to determine whether or not to delete them.

# SERVER PROCESS DUMP Subclause (Server)

> Specifies whether or not an OpenVMS process dump is generated for a server process if the process terminates abnormally.

## Format

## Clause Default

> The ACMS-supplied default is NO SERVER PROCESS DUMP.

## Notes

> An OpenVMS process dump is written to the server's default directory. The file name is the name of the server image with a .DMP file extension.

> See Compaq ACMS for OpenVMS Writing Server Procedures for more information about obtaining and analyzing server process dumps.

## 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 an OpenVMS process dump is generated for the server process if it terminates abnormally.

# TASK ATTRIBUTES Clause (Application)

> Defines one or more task control attributes on a task-by-task basis.

## Format

## Parameters

> ### task-given-name

> The name you create for the task in the application definition and in any menu definitions pointing to the task. For each task you describe, you must include its given name. The task given name must be a valid ACMS identifier and must be unique in the application definition.

> ### group-task-name

> The name of the task as defined in the task group. ADU uses the task given name as the default.

> ### task-group-name

> The name of a task group associated with the application you are defining. This name must correspond to the unique name assigned to the task group in the TASK GROUPS clause of the application definition. It is not a CDD path name or task group database file name. This task group name defaults to the last task group name in the immediately preceding TASK GROUPS clause. If you have not yet defined a TASK GROUPS clause in the application source file, you must include this parameter.

> ### task-subclause

> The subclauses that describe the tasks of a task group. Refer to Section 5.3 for information about the subclauses in this group.

## Clause Default

> See the Notes section to learn about the defaults ACMS assigns. This clause is optional.

## Notes

> You can define many tasks in one TASK ATTRIBUTES clause.

> You can include many TASK ATTRIBUTES clauses in one application definition.

> You must include at least one subclause for each task you name.

> If you do not include a task in a TASK ATTRIBUTES clause, its default name is the one you give it in the task group definition.

> Sometimes two or more tasks from different task groups have the same task name. For this reason, the task given name in the application definition must be unique.

> When deciding what value to assign for each task control attribute for each task, ADU looks at the following:

> 1. TASK ATTRIBUTES clause in the application definition
>    If a task attribute is explicitly defined for a task in a TASK ATTRIBUTES clause, ADU always takes that value for the attribute for that task. The subclauses used in a TASK ATTRIBUTES clause apply only to one task.
> 2. TASKS clause in the task group definition
>    If a task attribute is not explicitly defined for a task in a TASK ATTRIBUTES clause, and if the attribute is one that can be assigned in a task group definition, ADU looks in the task group database that defines implementation attributes for that task. The control attributes that can be defined in a task group definition (as well as an application definition) are DELAY, WAIT, LOCAL, GLOBAL, and CANCELABLE.
> 3. TASK DEFAULTS clause in the application definition
>    For any attribute not explicitly defined in the application or the task group definition of the task, ADU uses the defaults that are in effect when the task is defined in the application.
> 4. ACMS-supplied defaults
>    ADU uses the default value supplied by ACMS only if a value is not assigned to that attribute in the application definition TASK ATTRIBUTES clause, task group definition TASKS clause, or application definition TASK DEFAULTS clause that applies to that task.

## Example

    USERNAME IS PERSONNEL;
    TASK GROUP IS
      PERSONNEL_GROUP : TASK GROUP FILE IS "SYS$SAMPLE:PERSONNEL.TDB";
    END TASK GROUP;
    TASK ATTRIBUTES ARE
      EMPLOYEE:    TASK TASK_EMPLOYEE;
                   ACCESS CONTROL IS (ID=[PERSONNEL,*], ACCESS=EXECUTE);
                   WAIT;
      RESTORE:     TASK TASK_RESTORE;
                   ACCESS CONTROL IS (ID=[PERSONNEL,*], ACCESS=EXECUTE);
                   DELAY;
    END TASK ATTRIBUTES;
    END DEFINITION;

> This TASK ATTRIBUTES clause changes attributes for two tasks in the PERSONNEL_GROUP task group. See Section 5.3 for a list of the subclauses you use with the TASK ATTRIBUTES clause.

# TASK DEFAULTS Clause (Application)

> Changes the default values for one or more task control attributes in an application definition.

## Format

## Parameter

> ### task-subclause

> A set of subclauses. These subclauses let you change defaults for one or more task control attributes. See Section 5.3 for a list of these task subclauses.

## Clause Default

> ACMS assigns a default to each task control attribute you can define with the TASK DEFAULTS clause. This clause is optional.

## Notes

> The TASK DEFAULTS clause applies to any task or task groups named after this clause in the definition. You can include more than one TASK DEFAULTS clause in a definition. If you do, each TASK DEFAULTS clause uses the default values assigned in previous TASK DEFAULTS clauses, changing only those defaults that it explicitly names. A TASK DEFAULTS clause does not discard all previous TASK DEFAULTS clauses in the definition.

> Any defaults you change with the TASK DEFAULTS clause can be overridden on a task-by-task basis with a TASK ATTRIBUTES clause. If an attribute is not explicitly defined in the application or the task group definition of the task, ADU uses the defaults that are in effect when the task is defined in the application.

> If a task is named in a TASK ATTRIBUTES clause, the definition is explicit and ADU uses the defaults that are in effect when that ATTRIBUTES clause appears in the application definition. Otherwise, ADU uses the defaults in effect when it processes the TASK GROUPS clause for the task group containing the task.

## Example

    TASK DEFAULTS ARE
      ACCESS CONTROL IS ( (ID=[PERSONNEL,JONES], ACCESS=NONE),
                          (ID=[PERSONNEL,*], ACCESS=EXECUTE)  );
      DELAY;
    END TASKS DEFAULTS;
    TASK GROUP IS
      PERSONNEL_GROUP : TASK GROUP FILE IS "SYS$SAMPLE:PERSONNEL.TDB";
    END TASK GROUP;
    END DEFINITION;

> This clause changes the default access rights to tasks in the task group PERSONNEL_GROUP. The defaults you set in the TASK DEFAULTS clause apply to any task groups that you define after it. This rule applies if you do not define another TASK DEFAULTS clause, changing the same control attributes you changed in previous TASK DEFAULTS clauses.

> Example 5-4 shows how to include multiple TASK DEFAULTS clauses in your application definition.

Example 5-4 Application Definition Using Multiple TASK DEFAULTS

     REPLACE APPLICATION PERSONNEL_APPLICATION
     USERNAME IS PERSONNEL;
     TASK DEFAULTS ARE
       ACCESS CONTROL LIST
         IDENTIFIER [100,*] ACCESS EXECUTE,
         IDENTIFIER [200,*] ACCESS EXECUTE;
       AUDIT;
     END TASK DEFAULTS;
     TASK GROUP IS
       DEPARTMENT_COBOL_TASK_GROUP : TASK GROUP FILE IS
         "ACMS$EXAMPLES:DEPRMSCOB.TDB";
     END TASK GROUP;

     TASK DEFAULTS ARE
       ACCESS CONTROL LIST IDENTIFIER [200,*] ACCESS EXECUTE;
     END TASK DEFAULTS;

     TASK GROUP IS
       ADMINISTRATION_COBOL_TASK_GROUP : TASK GROUP FILE IS
         "ACMS$EXAMPLES:ADMRMSCOB.TDB";
     END TASK GROUP;
     END DEFINITION;

The first TASK DEFAULTS clause defines a default access control list. ADU assigns this access control list to all the tasks in the department group. The second TASK DEFAULTS clause changes that default access control list. ADU assigns the second access control list to all the tasks in the administration group. The only users who can run the tasks in the administration task group are those who have a group UIC of 200.

# TASK GROUPS Clause (Application)

> Names the task groups containing the tasks associated with an application. You must include at least one TASK GROUPS clause in each application definition.

## Format

## Parameters

> ### task-group-given-name

> A valid ACMS identifier that names the task group in the application. You must include a name for each task group in an application. This name serves as a link between the attributes you set in the SERVER ATTRIBUTES and TASK ATTRIBUTES clauses and the task group for which you are assigning attributes. Include the name in the SERVER ATTRIBUTES and the TASK ATTRIBUTES clauses to identify the task group for the task or server you are defining.

> ### task-group-file

> A file specification that points to a task group database file that you produce when you build a task group definition. For each task group name, you must include the name of the task group database file. The default file type for a task group database file is .TDB.

## Clause Default

> You must include at least one TASK GROUPS clause in each application definition. This clause is required.

## Notes

> You can include more than one TASK GROUPS clause in an application definition.

> The location of the TASK GROUPS clause can affect the attributes you assign to the tasks and servers in a task group. You must put the TASK DEFAULTS and SERVER DEFAULTS clauses before the TASK GROUPS clause with which you want to associate task and server defaults.

> ACMS uses this clause when you build the application and when you start the application to find the name of the task group file.

##

### Examples

#1
    USERNAME IS PERSONNEL;
    TASK GROUPS ARE
      PERSONNEL_GROUP : TASK GROUP FILE IS "SYS$SAMPLE:PERSONNEL.TDB";
      WORK_GROUP      : TASK GROUP FILE IS "SYS$SAMPLE:WORK.TDB";
    END TASK GROUPS;
    END DEFINITION;

> You must include at least one TASK GROUPS clause in each application definition. For each task group, you must create a task group given name. The name must be unique in the application definition. The names created in this application are PERSONNEL_GROUP and WORK_GROUP. A task group given name lets you use the TASK ATTRIBUTES and SERVER ATTRIBUTES clauses to assign defaults to the task group. The TASK GROUP FILE clause defines the binary file that results from building the task group definition with the BUILD command. End the TASK GROUPS clause with the keywords END TASK GROUPS.

#2
    USERNAME IS PERSONNEL;
    TASK GROUPS ARE
      PERSONNEL_GROUP : TASK GROUP FILE IS "SYS$SAMPLE:PERSONNEL.TDB";
      WORK_GROUP      : TASK GROUP FILE IS "SYS$SAMPLE:WORK.TDB";
    END TASK GROUPS;
    TASK ATTRIBUTE IS
     ADD_EMPLOYEE : TASK ADD_EMPL IN PERSONNEL_GROUP;
                    ACCESS CONTROL IS (ID=[PERSONNEL,*], ACCESS=EXECUTE);
    END TASK ATTRIBUTE;
    END DEFINITION;

> In this example, you use the task group given name in the TASK ATTRIBUTES clause. The task group given name, PERSONNEL_GROUP, identifies the task group containing the task for which you are setting control attributes. If you do not include the task group given name in the TASK ATTRIBUTES clause, ADU uses as the default task group the last task group in the TASK GROUPS clause just preceding the TASK ATTRIBUTES clause. In this case, the default task group is WORK_GROUP. Include the task group given name each time you use the TASK ATTRIBUTES clause.

Previous | Next | Contents | Index