HP OpenVMS Systems Documentation

Content starts here

Compaq ACMS for OpenVMS
ADU Reference Manual


Previous Contents Index


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.


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.


Previous Next Contents Index