Document revision date: 30 March 2001

## OpenVMS Guide to Extended File Specifications

Previous | Contents | Index

## 1.4 Recommendations for Using Extended File Specifications on OpenVMS Applications

It is essential that system managers perform the following steps before enabling ODS-5:

- Review all ODS-5 considerations.
- Understand the support levels for different OpenVMS applications.
- Segregate applications that do not support ODS-5 or have not been tested with ODS-5 names or volumes.
- Review the guidelines for setting users' expectations in Appendix A.

Note Compaq recommends that you enable ODS-5 disks in a homogeneous OpenVMS Version 7.2 Alpha cluster only.

## Chapter 2
Managing Extended File Naming on OpenVMS Systems

Managing an OpenVMS system with Extended File Specifications requires an understanding of the support provided by different OpenVMS applications, how to enable and control the new environment, and the changes to OpenVMS system management utilities. This chapter contains the following topics:

- Levels of support provided by the current set of OpenVMS commands and utilities that support Extended File Specifications
- How to enable Extended File Specifications on an OpenVMS Alpha system
- How to control user access to ODS-5 volumes
- Changes to system management utilities

## 2.1 Levels of Support for Extended File Specifications

To help determine the expected behavior of OpenVMS utilities and commands for ODS-5, the following levels of support have been established. Each level outlines the acceptable behavior of a utility or command when it encounters an extended (ODS-5 compliant) file specification.

The levels of support for ODS-5, from full support to no support, are defined in Sections 2.1.1 through 2.1.4.

### 2.1.1 Full Support

OpenVMS utilities and commands that offer full support for ODS-5 have been specifically modified to take advantage of all the features of extended file naming. These utilities and commands should accept and handle extended file specifications without error while maintaining the case as created.1

In addition, OpenVMS commands and utilities that fully support Extended File Specifications can accept and produce long file specifications that exceed the traditional 255-byte limit in their original form2-without requiring them to be abbreviated in Directory ID (DID) or File ID (FID) format. For the list of OpenVMS components that fully support Extended File Specifications, see Section 3.4.

### 2.1.2 Default Support

OpenVMS utilities and commands with default support have had little or no modification to take advantage of Extended File Specifications. These utilities and commands are expected to handle most of the attributes of extended file specifications (such as new characters and deep directory structures) correctly. However, file names may be created or displayed with the wrong case.

In contrast with utilities that have full support, utilities with default support rely on DID and FID abbreviation offered by RMS to handle long file specifications. As a result, these utilities are subject to the following restrictions related to DID and FID abbreviation:

- Matching operations in an environment where FID abbreviation is used may not always work as expected. For example, wildcard matching operations may not capture all target file names because the long file names may be represented in their numeric FID-abbreviated form. This restriction specifically applies to matching operations that are performed outside of RMS.
- Wildcards and sticky defaults cannot be used with a FID abbreviation. For example, the following commands are illegal:

      $ DIRECTORY a[1,2,3]*.txt
      $ COPY a[1,2,3].txt *.txt2

  Because a FID abbreviation is a unique numeric representation of one file, it cannot be used to represent or match any other file.
- Creating a file using a FID abbreviation is illegal.

For more information about DID abbreviations, see Section B.2.2.7. For more information about FID abbreviations, see Section B.2.2.8.

### 2.1.3 No Support for Extended File Naming

OpenVMS utilities and commands that do not support extended file names can function on ODS-5 volumes; however, they are restricted to operating with traditional file specifications only. These utilities and commands should be used carefully on ODS-5 volumes because Compaq cannot ensure that they will function successfully when they encounter extended file specifications.

Table 2-1 lists the OpenVMS utilities and commands that do not support Extended File Specifications because of limitations with either handling extended file names or the ODS-5 volume structure.

### 2.1.4 No Support for ODS-5

OpenVMS utilities and commands that do not support the ODS-5 volume structure cannot handle extended file names. These utilities and commands should be used carefully on ODS-5 volumes because Compaq cannot ensure that they will function successfully even when they only encounter traditional file specifications.

Table 2-1 lists the OpenVMS utilities and commands that do not support Extended File Specifications because of limitations with either handling extended file names or the ODS-5 volume structure.

Table 2-1 Non-Supported OpenVMS Components
Component | Notes
--- | ---
No ODS-5 Support
Disk defragmenters | Unsupported unless a specific defragmentation tool documents that it has been updated to support an ODS-5 volume. 1
System disk | Do not set to or initialize as an ODS-5 volume.
No Extended File Naming Support
Code compilers | Cannot use extended file names for object files. However, code compilers can create applications that support extended names.
INSTALL Known images | Do not install an image with an extended file name as a known image.
LINK | Cannot output an image with an extended file name.
MONITOR | Cannot reliably process extended file names.
Network files (NET*.DAT) | Do not rename to an extended file name.
Object modules (.OBJ) | Do not rename to an extended file name.
Page and swap files | Do not use an extended file name.
SYSGEN | Do not write a parameter file with an extended file name.
System startup files | Do not rename to an extended file name.

1Note that DFO has been modified to support ODS-5 volumes.

Note ##### 1 When creating the first version of a new file, the case of the new file matches that case specified by the user. When creating subsequent versions of an existing file, the case remains the same as the original version. ##### 2 If you are typing a long file specification on a DCL command line, DCL still limits the command line length to 255 bytes.

## 2.2 Enabling Extended File Specifications on OpenVMS Alpha Systems

Sections 2.2.1, 2.2.2, and 2.2.3 explain how to take advantage of Extended File Specifications on OpenVMS systems.

Note Extended File Specifications is not available on systems running versions of OpenVMS Alpha prior to Version 7.2. On these systems, you cannot mount ODS-5 volumes nor take advantage of extended file names on an OpenVMS file system.

### 2.2.1 Using RMS Default Extended File Specifications Features

RMS allows you to use directory levels deeper than 8, as well as the new RMS API extensions on both ODS-2 and ODS-5 volumes. However, you can create extended file names only on ODS-5 volumes. Section 2.2.2 contains procedures for creating new ODS-5 volumes and for converting ODS-2 volumes to ODS-5 volumes.

On ODS-5 volumes, you - and also a program - can create a file with an extended name on an ODS-5 volume. However, by default, DCL (as well as some applications) does not accept all extended file names and capitalizes any lowercase file names entered on the command line. For DCL to accept all extended file names, you must enable the extended parsing style for DCL, as explained in Section 3.4.1.

Section B.2 contains detailed information about RMS Extended File Specifications features.

### 2.2.2 Enabling ODS-5 Volumes

To create an ODS-5 volume on an OpenVMS Alpha system, the system manager must do either of the following:

- Initialize a new volume as ODS-5
- Convert an existing volume from ODS-2 to ODS-5

Creating ODS-5 volumes allows you to take advantage of ODS-5 attributes for Advanced Server for OpenVMS 7.2 (formerly known as PATHWORKS) clients; you can see and manage these attributes from OpenVMS.

Section 2.2.2.1 contains instructions for initializing a new ODS-5 volume. Section 2.2.2.2 contains instructions for converting an existing volume to ODS-5.

Note If you plan to add a new volume to a volume set, the structure level of the new volume must match that of the volume set. If it does not, the Mount utility displays the following error message:
     Structure level on device ... is inconsistent with volume set

#### 2.2.2.1 Initializing a New ODS-5 Volume

You can initialize a new volume as an ODS-5 volume by issuing the INITIALIZE command in the following format. Note that once you initialize the volume, the current contents of the volume are lost.

    $ INITIALIZE /STRUCTURE_LEVEL=5 device-name volume-label

For example:

    $ INITIALIZE /STRUCTURE_LEVEL=5 DKA300: DISK1
    $ MOUNT DKA300: DISK1 /SYSTEM
    %MOUNT-I-MOUNTED, DISK1 mounted on _STAR$DKA300:

The first command initializes the DKA300: device as an ODS-5 volume and assigns the volume-label DISK1. The second command mounts the DISK1 volume as a public volume.

To verify that the volume has been initialized ODS-5, you can issue a command and see a display such as the following:

    $ WRITE SYS$OUTPUT F$GETDVI ("DKA300:","ACPTYPE")
    F11V5

F11V5 indicates that the volume is ODS-5.

#### 2.2.2.2 Converting an Existing Volume to ODS-5

To convert an existing volume to ODS-5, follow these steps:

1. Dismount the volume throughout the cluster; for example:

       $ DISMOUNT /CLUSTER DKA300:

2. Mount the volume as a private volume; for example:

       $ MOUNT DKA300: DISK1
       %MOUNT-I-MOUNTED, DISK1 mounted on _STAR$DKA300:

   Omitting the /SYSTEM qualifier causes the system to mount the volume as a private, not a public, volume.
3. You can check that the volume is ODS-2 by issuing a command and seeing a display such as the following:

       $ WRITE SYS$OUTPUT F$GETDVI ("DKA300:","ACPTYPE")
       F11V2

   F11V2 indicates that the volume is ODS-2.
4. Compaq strongly recommends that you back up the volume. You cannot go back to ODS-2 format once you change to ODS-5 except by restoring a backup, as described in Section 2.2.3. For example:

       $ BACKUP /IMAGE DKA300: SAV.BCK /SAVE_SET

5. Set the characteristics of the volume by using a command in the following format:

       $ SET VOLUME /STRUCTURE_LEVEL=5  device-name

   For example:

       $ SET VOLUME /STRUCTURE_LEVEL=5 DKA300:

   Note You cannot use the SET VOLUME command to change a volume from ODS-5 to ODS-2. To reset a volume to ODS-2, see the instructions in Section 2.2.3. If a failure occurs after you issue the SET VOLUME/STRUCTURE_LEVEL command, refer to the instructions following Step 5.

   When you issue the SET VOLUME command, the system verifies that the volume can be converted by testing for the following:
   - The device must be a disk, and its on-disk structure must be ODS-2 or ODS-5.
     If the volume fails these tests, the system displays messages similar to the following:

         %SET-E-NOTMOD, DKA300: not modified
         -SET-E-NOTDISK, device must be a Files-ll format disk

         %SET-E-NOTMOD, DKA300: not modified
         -SET-W-INVODSLVL, Invalid on-disk structure level

   - The disk must be privately owned; the owner process-ID (PID) must be the same as the process that issues the SET VOLUME command.
     If the volume fails this test, the system displays a message similar to the following:

         %SET-E-NOTMOD, DKA300: not modified
         -SET-W-NOTPRIVATE, device must be mounted privately

   - The mount count must indicate that the device has been mounted only once, which protects against anyone mounting the device over a cluster.
     If the volume fails this test, the system displays a message similar to the following:

         %SET-E-NOTMOD, DKA300: not modified
         -SET-W-NOTONEACCR, device must be mounted with only one accessor

6. Dismount the private volume DKA300: and remount the volume publicly by issuing commands such as the following:

       $ DISMOUNT DKA300:
       $ MOUNT /CLUSTER DKA300: DISK1
       %MOUNT-I-MOUNTED, DISK1 mounted on _STAR$DKA300:

   To verify that the volume has been converted to ODS-5, you can issue a command and see a display such as the following:

       $ WRITE SYS$OUTPUT F$GETDVI ("DKA300:","ACPTYPE")
       F11V5

   F11V5 indicates that the volume is ODS-5.

If a Failure Occurs...

If a failure such as an I/O error or a system crash occurs after you enter the SET VOLUME/STRUCTURE_LEVEL command, but before the command completes, the volume might be only partially updated. If so, when you enter the MOUNT command, the Mount utility will display one of the following error messages:

         Inconsistent file structure level on device ...

         Structure level on device ... is inconsistent with volume set

If either condition is true, you can issue the MOUNT command only with the /NOSHARE qualifier (or with no qualifier, because /NOSHARE is the default). When you do, the system displays the same error message but only as a warning.

To recover from the error condition, reissue the SET VOLUME/STRUCTURE_LEVEL=5 command. Then dismount and remount the disk. As a last resort, you can restore the backup you made.

### 2.2.3 Converting from ODS-5 to ODS-2

Two types of BACKUP operations, file and image, support converting ODS-5 file names to ODS-2 file names. (File and image operations are described in the Backup chapter of the OpenVMS System Manager's Manual.)

In the examples in the following descriptions, notice that when you perform a conversion to or from a save set, the "created as" or "copied as" message is displayed for the converted files.

- Conversions during image operations
  - Restoring an ODS-5 image save set to an ODS-2 disk
    You can use this method if you have an image backup of an ODS-5 disk, and you want to restore it to an ODS-2 disk.
    In the command line in the following example, IMAGE.BCK is the ODS-5 save set, and DKA200 is the ODS-2 disk. When you use this conversion method, you must preinitialize the output disk to ODS-2 and then include the /NOINIT qualifier in your command line.

        $ BACKUP/LOG/IMAGE/CONVERT DKA500:[000000]IMAGE.BCK/SAVE -
        _$ DKA200:/NOINIT

        %BACKUP-I-ODS5CONV, structure level 5 files will be converted to structure
                level 2 on DKA200:
        -BACKUP-I-ODS5LOSS, conversion may result in loss of structure level 5
                file attributes
        %BACKUP-S-CREATED, created DKA200:[000000]000000.DIR;1
        %BACKUP-S-CREATED, created DKA200:[000000]BACKUP.SYS;1
        %BACKUP-S-CREATED, created DKA200:[000000]CONTIN.SYS;1
        %BACKUP-S-CREATED, created DKA200:[000000]CORIMG.SYS;1
        %BACKUP-S-CREATED, created DKA200:[000000]SECURITY.SYS;1
        %BACKUP-S-CREATED, created MDA2:[000000]TEST_FILES.DIR;1
        %BACKUP-S-CREATEDAS, created DKA200:[TEST_FILES]SUB^_^{DIR^}.DIR;1 as
                DKA200:[TEST_FILES]SUB$$DIR$.DIR;1
        %BACKUP-S-CREATEDAS, created
                DKA200:[TEST_FILES.SUB^_^{DIR^}]SUB^&_~_FILE_~.DAT;1 as
                DKA200:[TEST_FILES.SUB$$DIR$]SUB$_$_FILE_$.DAT;1
        %BACKUP-S-CREATEDAS, created
                DKA200:[TEST_FILES]THIS^_IS^_A^_TEST^{_FILE_^}.DAT;1 as
                DKA200:[TEST_FILES]THIS$IS$A$TEST$_FILE_$.DAT;1
        %BACKUP-S-CREATED, created DKA200:[000000]VOLSET.SYS;1

  - Saving an ODS-5 disk to an ODS-2 image save set
    You can use this method if you want to make an ODS-2 image save set of an ODS-5 disk that can be read by a system running a version of OpenVMS prior to Version 7.2.
    In the following example, DKA500: is an ODS-5 disk, and IMAGE.BCK is an ODS-2 save set on the DKA200: disk.

        $ BACKUP/LOG/CONVERT/IMAGE DKA500: DKA200:[000000]IMAGE.BCK/SAVE

        %BACKUP-I-ODS5CONV, structure level 5 files will be converted to
                structure level 2 on DKA200:
        -BACKUP-I-ODS5LOSS, conversion may result in loss of structure level 5
                file attributes
        %BACKUP-S-COPIED, copied DKA200:[000000]000000.DIR;1
        %BACKUP-S-COPIED, copied DKA200:[000000]BACKUP.SYS;1
        %BACKUP-S-HEADCOPIED, copied DKA200:[000000]BADBLK.SYS;1 header
        %BACKUP-S-HEADCOPIED, copied DKA200:[000000]BADLOG.SYS;1 header
        %BACKUP-S-HEADCOPIED, copied DKA200:[000000]BITMAP.SYS;1 header
        %BACKUP-S-COPIED, copied DKA200:[000000]CONTIN.SYS;1
        %BACKUP-S-COPIED, copied DKA200:[000000]CORIMG.SYS;1
        %BACKUP-S-HEADCOPIED, copied DKA200:[000000]INDEXF.SYS;1 header
        %BACKUP-S-COPIED, copied DKA200:[000000]SECURITY.SYS;1
        %BACKUP-S-COPIED, copied DKA200:[000000]TEST_FILES.DIR;1
        %BACKUP-S-COPIEDAS, copied DKA200:[TEST_FILES]Sub^_^{Dir^}.DIR;1 as
                DKA200:[TEST_FILES]SUB$$DIR$.DIR;1
        %BACKUP-S-COPIEDAS, copied
                DKA200:[TEST_FILES.Sub^_^{Dir^}]Sub^&_~_File_~.Dat;1 as
                DKA200:[TEST_FILES.SUB$$DIR$]SUB$_$_FILE_$.DAT;1
        %BACKUP-S-COPIEDAS, copied
                DKA200:[TEST_FILES]This^_is^_a^_Test^{_File_^}.Dat;1 as
                DKA200:[TEST_FILES]THIS$IS$A$TEST$_FILE_$.DAT;1
        %BACKUP-S-COPIED, copied DKA200:[000000]VOLSET.SYS;1

  - "Copying" the contents of an ODS-5 disk to an ODS-2 disk
    You can use this method if you want to create an ODS-2 disk from an ODS-5 disk without creating an intermediate save set.
    When you use this conversion method, you must preinitialize the output disk to ODS-2 and include the /NOINIT qualifier in your command line. In the following example, DKA500 is the ODS-5 disk, and DKA200 is the ODS-2 disk.

        $ BACKUP/LOG/CONVERT/IMAGE DKA500: DKA200:/NOINIT

        %BACKUP-I-ODS5CONV, structure level 5 files will be converted to
         structure level 2 on DKA200:
        -BACKUP-I-ODS5LOSS, conversion may result in loss of structure level 5
         file attributes
        %BACKUP-S-CREATED, created DKA200:[000000]000000.DIR;1
        %BACKUP-S-CREATED, created DKA200:[000000]BACKUP.SYS;1
        %BACKUP-S-CREATED, created DKA200:[000000]CONTIN.SYS;1
        %BACKUP-S-CREATED, created DKA200:[000000]CORIMG.SYS;1
        %BACKUP-S-CREATED, created DKA200:[000000]SECURITY.SYS;1
        %BACKUP-S-CREATED, created DKA200:[000000]TEST_FILES.DIR;1
        %BACKUP-S-CREATED, created DKA200:[TEST_FILES]SUB$$DIR$.DIR;1
        %BACKUP-S-CREATED, created DKA200:[TEST_FILES]THIS$IS$A$TEST$_FILE_$.DAT;1
        %BACKUP-S-CREATED, created DKA200:[000000]VOLSET.SYS;1

- Conversions during file operations
  - "Copying" individual ODS-5 files to an ODS-2 disk
    This conversion method allows you to interchange files between ODS-5 and ODS-2 disks. You can, for example, select a directory tree for a disk-to-disk "copy" operation.
    In the following example, DKA500 is the ODS-5 disk, and DKA200 is the ODS-2 disk.

        $ BACKUP/LOG/CONVERT DKA500:[*...]*.*;* DKA200:[*...]*.*;*

        %BACKUP-I-ODS5CONV, structure level 5 files will be converted to
                structure level 2 on DKA200:
        -BACKUP-I-ODS5LOSS, conversion may result in loss of structure level 5
                file attributes
        %BACKUP-S-CREDIR, created directory DKA200:[TEST_FILES.SUB$$DIR$]
        %BACKUP-S-CREATED, created DKA200:[TEST_FILES]THIS$IS$A$TEST$_FILE_$.DAT;1

  - Saving individual ODS-5 files in an ODS-2 save set
    You can use this method to save ODS-5 files in a save set that can be read on a system running a version of OpenVMS prior to Version 7.2.
    In the following example, DKA500 is an ODS-5 disk, and DKA200 is an ODS-2 disk; FILES.BCK is the ODS-2 save set.

        $ BACKUP/LOG/CONVERT DKA500:[*...]*.*;* DKA200:FILES.BCK/SAVE

        %BACKUP-I-ODS5CONV, structure level 5 files will be converted to
                structure level 2 on DKA200:
        -BACKUP-I-ODS5LOSS, conversion may result in loss of structure level
                5 file attributes
        %BACKUP-S-COPIED, copied DKA200:[000000]000000.DIR;1
        %BACKUP-S-COPIED, copied DKA200:[000000]TEST_FILES.DIR;1
        %BACKUP-S-COPIEDAS, copied DKA200:[TEST_FILES]Sub^_^{Dir^}.DIR;1 as
                DKA200:[TEST_FILES]SUB$$DIR$.DIR;1
        %BACKUP-S-COPIEDAS, copied
                DKA200:[TEST_FILES.Sub^_^{Dir^}]Sub^&_~_File_~.Dat;1 as
                DKA200:[TEST_FILES.SUB$$DIR$]SUB$_$_FILE_$.DAT;1
        %BACKUP-S-COPIEDAS, copied
                DKA200:[TEST_FILES]This^_is^_a^_Test^{_File_^}.Dat;1 as
                DKA200:[TEST_FILES]THIS$IS$A$TEST$_FILE_$.DAT;1

If BACKUP cannot convert a file name within its existing directory, it converts the file name and leaves it unconnected so that ANALYZE /DISK /REPAIR can connect it to the [SYSLOST] directory, where the file has an ODS-2-compliant name. BACKUP also displays messages such as the following:

    %BACKUP-I-RECOVCNT, 5 files could not be converted into a directory on DKA100
    -BACKUP-I-RECOVCMD, use the Analyze/Disk_Structure/Repair command to recover
         files

In this case, you need to move the file from [SYSLOST] to the appropriate directory. Refer to the "created as" log messages to see where the file logically would have been placed so that you can move it there manually.

Previous | Next | Contents | Index

| privacy and legal statement |
6536PRO_001.HTML