[Digital logo]
[HR]

OpenVMS User's Manual


Previous | Contents

Once you set the quota for a table, you cannot change it. If the table runs out of room, use the DEASSIGN command to delete old logical names. This frees space for your new logical names.

13.5.16 Example

In the following example, the logical name table ABC is created and is given a quota of 500 bytes:

$ CREATE/NAME_TABLE/QUOTA=500 ABC

13.5.17 Setting Job Table Quotas

The job logical name table is a shareable table. The quota for a job logical name table is established when the table is created. The quota is determined by one or more of the following criteria:

A quota value of 0 for a job logical name table means there is no quota. For all practical purposes, the quota is unlimited.

13.5.18 Using Logical Name Directory Tables

When you enter a logical name as part of a command line, the system translates the logical name by searching the logical name tables in a certain order. The system stores information about existing logical name tables and the order in which they are searched in two logical name directory tables:

There is only one shareable directory for each system but each process has its own process-private directory. Both directories contain logical names that translate iteratively to table names. All logical name tables and any logical names that translate to tables are kept in these directories.

13.6 Process Directory Table LNM$PROCESS_DIRECTORY

Within each logical name table, the system defines some logical names for you. This section describes each table and its system-defined logical names in the process directory table LNM$PROCESS_DIRECTORY. Note that the logical names SYS$INPUT, SYS$OUTPUT, SYS$ERROR, and SYS$COMMAND refer to process-permanent files (files that remain open for the life of the process). For more information on process-permanent files, see Section 13.10.)

13.6.1 LNM$GROUP

LNM$GROUP is a logical name that is defined as LNM$GROUP_xxx, where xxx represents your group number. LNM$GROUP_xxx is the logical name table used by your UIC group. The table LNM$GROUP_xxx is cataloged in the system directory table. Therefore, LNM$GROUP is a logical name that translates iteratively to the name of your group logical name table.

13.6.2 LNM$JOB

LNM$JOB is a logical name that is defined as LNM$JOB_xxx, where xxx represents a number unique to your job tree. LNM$JOB_xxx is the logical name table used by your job. The table LNM$JOB_xxx is cataloged in the system directory table. Therefore, LNM$JOB is a logical name that translates iteratively to the name of your job logical name table.

13.6.3 LNM$PROCESS

LNM$PROCESS is a logical name that translates iteratively to LNM$PROCESS_TABLE, which is the name of your process logical name table.

13.6.4 LNM$PROCESS_DIRECTORY

LNM$PROCESS_DIRECTORY is the name of your process directory logical name table.

13.6.5 LNM$PROCESS_TABLE (Process Table)

LNM$PROCESS_TABLE is the name of your process logical name table, which is available only to your process and any subsequent subprocesses. By default, the table contains the following logical names:

13.6.6 LNM$JOB_xxx (Job Table)

The job table contains logical names that are available to all processes in your job tree. There is one job table for each job tree in the system.

The system places logical names created for mounted disks, mounted tapes, and temporary mailboxes in the job logical name table. In addition, the system creates the following logical names:

13.7 System Directory Table LNM$SYSTEM_DIRECTORY

This section describes each table and its system-defined logical names in the system directory table LNM$SYSTEM_DIRECTORY.

13.7.1 LNM$DCL_LOGICAL

LNM$DCL_LOGICAL is a logical name defined as LNM$FILE_DEV. Translates iteratively into the list of logical name tables searched and displayed by the SHOW LOGICAL command, the SHOW TRANSLATION command, and the F$TRNLNM lexical function. By default, these commands search and display the process, job, group, and system logical name tables, in that order.

13.7.2 LNM$DIRECTORIES

LNM$DIRECTORIES is a logical name defined as LNM$PROCESS_DIRECTORY and LNM$SYSTEM_DIRECTORY.

13.7.3 LNM$FILE_DEV

LNM$FILE_DEV is a logical name defined as the list of logical name tables searched by the system when processing a file specification. Defined as LNM$PROCESS, LNM$JOB, LNM$GROUP, and LNM$SYSTEM so the system searches the process, job, group, and system logical name tables, in that order.

13.7.4 LNM$GROUP_xxx (Group Table)

The group table contains logical names that are available to all users with the same user identification code (UIC) group number. The group table is named LNM$GROUP_xxx, where xxx represents your UIC group number. Use the logical name LNM$GROUP to refer to your group table. Every group on the system has a corresponding group logical name table.

13.7.5 LNM$JOB_xxx

LNM$JOB_xxx is a job logical name table, where xxx is a number unique to this job tree. There is an LNM$JOB_xxx logical name table for each job in the system.

13.7.6 LNM$PERMANENT_MAILBOX

LNM$PERMANENT_MAILBOX is a logical name that is defined as LNM$SYSTEM. Logical names associated with permanent mailboxes are entered in the logical name table to which the logical name LNM$PERMANENT_MAILBOX iteratively translates.

13.7.7 LNM$SYSTEM

LNM$SYSTEM is a logical name that translates iteratively to LNM$SYSTEM_TABLE.

13.7.8 LNM$SYSTEM_TABLE (System Table)

LNM$SYSTEM_TABLE is the name of the system logical name table. The system table contains logical names that are available to all users of the system at the system level. Use the logical name LNM$SYSTEM to refer to it.

The following logical names are automatically defined in the system table when the system starts up:

13.7.9 LNM$TEMPORARY_MAILBOX

LNM$TEMPORARY_MAILBOX is a logical name that is defined as LNM$JOB. Logical names associated with temporary mailboxes are entered in the logical name table to which the logical name LNM$TEMPORARY_MAILBOX iteratively translates.

13.8 Displaying Logical Names

Use the SHOW LOGICAL command to display logical names and their equivalence strings.

Sometimes the definition of a logical name includes another logical name. The SHOW LOGICAL command performs iterative translations. It then displays both the equivalence string and the level of translation. Level numbers are zero based; that is, 0 is the first level, 1 is the second, and so on. To display only the first translation found for a specified logical name, use the SHOW TRANSLATION command. (For more information, see the OpenVMS DCL Dictionary.)

13.8.1 Examples

13.8.2 Displaying Process Permanent Files

If you use the SHOW LOGICAL command to determine the equivalence string for a process-permanent file (see Section 13.10), the command displays only the device portion of the string. For example:

$ SHOW LOGICAL SYS$INPUT
"SYS$INPUT" = "_TTB4:" (LNM$PROCESS_TABLE)

13.8.3 Displaying the Access Mode for a Logical Name

To display the access mode for a logical name, use the SHOW LOGICAL/FULL command, as follows:

$ SHOW LOGICAL/FULL PROJECT
  "PROJECT" [super] = "DISK1:[JONES]" (LNM$PROCESS_TABLE)

This example displays the logical name PROJECT in supervisor mode.

13.8.4 Displaying Logical Name Tables

By default, the SHOW LOGICAL command searches your process, job, group, and system tables. However, you can change the default search order or specify other logical name tables to be searched. To display the entries in a particular logical name table, use the /TABLE qualifier. You can also use the /GROUP, /SYSTEM, /JOB, and /PROCESS qualifiers to display the logical names in the group, system, job, and process logical name tables, respectively.

13.8.5 Example

In the following example, the command displays the logical names in the process logical name table (LNM$PROCESS):

$ SHOW LOGICAL/TABLE=LNM$PROCESS
(LNM$PROCESS_TABLE) 
  "DECW$DISPLAY" = "_WSA30:" 
  "SYS$COMMAND" = "_FIFI$VTA65:" 
  "SYS$DISK" [super] = "WORK1:" 
  "SYS$DISK" [exec] = "WORK1:" 
  "SYS$ERROR" = "_FIFI$VTA65:" 
  "SYS$INPUT" = "_FIFI$VTA65:" 
  "SYS$OUTPUT" [super] = "_FIFI$VTA65:" 
  "SYS$OUTPUT" [exec] = "_FIFI$VTA65:" 
  "TT" = "_VTA65:"

13.8.6 Displaying Directory Table Structure

To display the relationship of directory tables to logical name tables, enter the SHOW LOGICAL/STRUCTURE command, as shown in the following example:

$ SHOW LOGICAL/STRUCTURE
(LNM$PROCESS_DIRECTORY) 
    (LNM$PROCESS_TABLE) 
(LNM$SYSTEM_DIRECTORY) 
    (LNM$GROUP_000360) 
    (LNM$JOB_806E98E0) 
    (LNM$SYSTEM_TABLE)

This example shows the process table, LNM$PROCESS_TABLE, in the process directory table, and the group, job, and system tables in the system directory table.

13.9 Deleting Logical Names and Logical Name Tables

To delete a logical name, use the DEASSIGN command. When you define logical names in your process and job logical name tables, they are not deleted until your process terminates or they are explicitly deleted by user actions. However, if you specify the /USER_MODE qualifier to the DEFINE command, the logical name is defined in the process logical name table and deleted automatically after executing the next command image.

To delete a logical name ending with a colon, specify two colons. The DEASSIGN command, like the ASSIGN command, removes one colon before it searches the logical name table for a match.

To delete a logical name table, specify the table that contains it (the system or process directory logical name table) and the name of the table. All logical names in descendant tables (and the descendant tables themselves) are deleted when you delete a parent logical name table.

To delete a shareable logical name table, you must have DELETE access to the table or SYSPRV privilege.

13.9.1 Examples

13.10 Redefining Process-Permanent Logical Names

Process-permanent logical names are created by DCL when you log in and they remain defined for the life of your process. You cannot deassign these logical names. You can redefine them (by specifying a different equivalence string in a DEFINE command) but if the redefined name is later deassigned, the process-permanent name is reestablished.

13.10.1 Available Process Permanent Logical Names

The following process-permanent logical names are available:

13.10.2 Using the System Interactively

When you use the system interactively, DCL equates SYS$INPUT, SYS$OUTPUT, SYS$ERROR, and SYS$COMMAND to your terminal. However, when you execute command procedures and submit batch jobs, DCL creates new equivalence strings for these logical names.

13.10.3 Executing Command Procedures Interactively

When you execute a command procedure interactively, the following occur:

13.10.4 Submitting Batch Jobs

When you submit a batch job, the following occur:

13.10.5 Nested Command Procedures

When you nest command procedures (that is, when you write a command procedure that executes other command procedures), the equivalence string for SYS$INPUT changes to point to the command procedure that is currently executing. However, the equivalence strings for SYS$OUTPUT, SYS$ERROR, and SYS$COMMAND remain the same unless you explicitly change them.

13.10.6 Opening Files

In addition, when you enter a command that opens a file, DCL opens the file as a process-permanent file. For example, if you open a file with the OPEN command, this file is opened as a process-permanent file. The file remains open until you explicitly close the file or until you log out.

Process-permanent files are stored in a special area in memory. Note that if you keep a large number of files open at the same time, you can exhaust this area. If this occurs, close some of the files (or log out).

13.11 Using Process-Permanent Logical Names as File Specifications

This section describes how to use process-permanent logical names as file specifications. In command procedures, you can use these names to read data from the terminal and to display data (see Chapter 15 and Chapter 16).

13.11.1 Redefining SYS$INPUT

You can redefine SYS$INPUT so that a command procedure reads input from the terminal or another file.

Note that if you redefine SYS$INPUT, DCL ignores your definition. DCL always obtains input from the default input stream. However, images such as command procedures can use your definition for SYS$INPUT.

13.11.2 Examples

In the following example, the commands shown are included in a command procedure to enable editing a file from a command procedure:

$ DEFINE/USER_MODE SYS$INPUT SYS$COMMAND
$ EDIT/TPU MYFILE.DAT
   .
   .
   .

SYS$INPUT is redefined as SYS$COMMAND so that the editor obtains input from the terminal rather than from the command procedure file (the default). SYS$COMMAND refers to the terminal, the initial input stream when you logged in. The /USER_MODE qualifier tells the command procedure that SYS$INPUT is redefined only for the duration of the next image. In this example, the next image is the editor. When the editor is finished, SYS$INPUT resumes its default value. In this case, the default value is the command procedure file.

13.11.3 Redefining SYS$OUTPUT

You can redefine SYS$OUTPUT to redirect output from your default device to another file. When you redefine SYS$OUTPUT, the system opens a file with the name you specify in the logical name assignment. When you define SYS$OUTPUT, all subsequent output is directed to the new file.

Remember to deassign SYS$OUTPUT or output will continue to be written to the file you specify. Note that you can redefine SYS$OUTPUT in user mode (with DEFINE/USER_MODE) to redirect output from an image. This definition is in effect only until the next command image is executed. Once the command image is executed (that is, the output is captured in a file), the logical name SYS$OUTPUT resumes its default value.

When you log in, the system creates two logical names called SYS$OUTPUT. One name is created in executive mode; the other name is created in supervisor mode. You can supersede the supervisor mode logical name by redefining SYS$OUTPUT. If you deassign the supervisor mode name, the system redefines SYS$OUTPUT in supervisor mode, using the executive mode equivalence string. You cannot deassign the executive mode name.

When you redefine SYS$OUTPUT to a file, the logical name contains only the device portion of the file specification even though the output is directed to the file you specify.

If the system cannot open the file you specify when you redefine SYS$OUTPUT, an error message displays.

After you redefine SYS$OUTPUT, most commands direct output to the existing version of the file. However, certain commands create a new version of the file before they write output.

13.11.4 Examples

13.11.5 Redefining SYS$ERROR

You can redefine SYS$ERROR to direct error messages to a specified file. However, if you redefine SYS$ERROR so it is different from SYS$OUTPUT (or if you redefine SYS$OUTPUT without also redefining SYS$ERROR), DCL commands send informational, warning, error, and severe error messages to both SYS$ERROR and SYS$OUTPUT. Therefore, you receive these messages twice---once in the file indicated by the definition of SYS$ERROR and once in the file indicated by SYS$OUTPUT. Success messages are sent only to the file indicated by SYS$OUTPUT.

DCL commands and images, which use standard error display mechanisms, send error messages to both SYS$ERROR and SYS$OUTPUT even when SYS$ERROR is different from SYS$OUTPUT. However, if you redefine SYS$ERROR, then run an image that references SYS$ERROR, the image sends error messages only to the file indicated by SYS$ERROR. This is true even if SYS$ERROR is different from SYS$OUTPUT.

13.11.6 Redefining SYS$COMMAND

Although you can redefine SYS$COMMAND, DCL ignores your definition. DCL always uses the default definition for your initial input stream. However, if you execute an image that references SYS$COMMAND, the image can use your new definition.

13.12 Logical Name Translation

When the system reads a file specification or device name in a DCL command line, it examines the file specification or device name to see whether the leftmost component is a logical name. If the leftmost component ends with a colon, space, comma, or a line terminator (for example, Return), the system attempts to translate it as a logical name. If the leftmost component ends with any other character, the system does not attempt to translate it as a logical name.

13.12.1 Examples

13.12.2 Modifying Logical Name Translation

By default, when the system translates logical names in file specifications, it searches the process, job, group, and system tables in that order and uses the first match it finds.


Previous | Next | Contents | [Home] | [Comments] | [Ordering info] | [Help]

[HR]

  6489P022.HTM
  OSSG Documentation
  22-NOV-1996 13:17:08.87

Copyright © Digital Equipment Corporation 1996. All Rights Reserved.

Legal