Document revision date: 15 July 2002
[Compaq] [Go to the documentation home page] [How to order documentation] [Help on this site] [How to contact us]
[OpenVMS documentation]

OpenVMS Alpha Version 7.3--1 New Features and Documentation Overview


Previous Contents Index

4.10 File Service Extensions

OpenVMS Version 7.2 implemented Extended File Specifications. OpenVMS Version 7.3--1 provides new file system features to further comply with POSIX requirements. These features are supported for ODS-5 volumes, which you can now use as system disks. The result is greater flexibility for OpenVMS Alpha systems to store, manage, and access files created by Windows 95, Windows NT, and UNIX applications. Applications now require less change in porting from these platforms and POSIX compliant environments to OpenVMS Alpha.

The file service extensions consist of support for the following:

4.10.1 Additional File Times

To support POSIX-compliant file timestamps on ODS-5 disks, OpenVMS Alpha Version 7.3--1 includes three new file attributes:

Modifications to the file header are recorded as ATTDATE unless the file is actually accessed. The REVDATE ACP/QIO attribute is the most recent of the MODDATE and ATTDATE timestamps. A new ACP/QIO attribute returns the stored REVDATE.

When a file is closed, if "norecord" is set, ACCDATE and REVDATE are not altered. Otherwise, if data has been read from the file, closing a file updates the file's access date. If data has been written to the file, closing a file updates the file's modification date.

Because access dates must be written out to disk, using these new file attributes impacts performance. The system manager can use the following command to enable or disable access date support and the frequency for changing access dates:


$  SET VOLUME/VOLUME_CHARACTERISTICS=([[NO]HARDLINKS,][[NO]ACCESS_DATES[=delta-time]])

To limit the performance impact if a file is accessed frequently, you can suppress update of the access time if the change is small. A delta time is used to determine when a new access time is significant.

For an example of how to set access dates using the SET VOLUME/VOLUME_CHARACTERISTICS command, see Section 4.10.2.

4.10.1.1 ACP/QIO Access Dates

Changes in access dates for ACP/QIO depend on whether file dates are being read or maintained.

4.10.1.2 Compaq C Run-Time Library Dates

For information about how to set correct time values, refer to the descriptions of the utime() , stat() , and fstat() functions in the Compaq C Run-Time Library Reference Manual for OpenVMS Systems.

4.10.2 DCL Access Dates

To enable automatic update of access dates on ODS-5 volumes, use the SET VOLUME/VOLUME_CHARACTERISTICS command. For example:


$ SET VOLUME/VOLUME_CHARACTERISTICS=ACCESS_DATES=[delta-time] NODE$COE1 

The default value for delta-time is 1 second, chosen to comply with the "seconds since EPOCH" time interface required by POSIX st_atime . A site can choose a larger delta time to reduce overhead if 1-second granularity is not required.

Another way to enable automatic update of access dates is to use the INITIALIZE/VOLUME_CHARACTERISTICS=ACCESS_DATES command, as follows:


$ INITIALIZE/VOLUME_CHARACTERISTICS=ACCESS_DATES NODE$COE1
$ MOUNT NODE$COE1

To disable access date support on a volume, use the SET VOLUME/VOLUME_CHARACTERISTICS=NOACCESS_DATES command. This command affects only the node on which the command is issued. Other nodes are not affected by the change until the next time the volume is mounted.

The DCL commands DIRECTORY or DUMP/HEADER support the new timestamps. Use the following qualifiers:
Qualifier Description
/DATE=ACCESSED Specifies the last access date.
/DATE=ATTRIBUTES Specifies the last attribute modification date.
/DATE=DATA_MODIFIED Specifies the last data modification date.

For example, the following command displays the last time data was read from the file:


$ DIRECTORY/DATE=ACCESSED

4.10.3 Hard Links

A link, or directory entry, is an object in a directory that associates a file name and a version number with a specific file. All links on a volume must represent files on the same volume.

With the introduction of hard link support in OpenVMS Alpha Version 7.3--1, OpenVMS now supports three kinds of links on ODS-5 volumes: primary links, aliases, and hard links.

OpenVMS Alpha supports files with zero or more links. The first link to a file is referred to as the primary link and is distinguished by having the directory ID and name of the link stored in the file header. Additional links are either aliases or hard links, depending on whether the volume on which the file resides has hard links enabled or disabled.

On OpenVMS Alpha systems, you can enable hard links on ODS-5 volumes. On volumes where hard links are not enabled, nonprimary links are aliases. If you choose to enable hard links, you cannot create OpenVMS aliases for files on that volume. A volume can support either hard links or aliases, but not both.

The essential difference between hard links and aliases is in the effect of a delete operation. What is usually referred to as deleting a file is more precisely deleting a link to that file. When a link to a file is deleted, the associated file might also be deleted. Whether or not a file is deleted depends on whether the volume on which the file resides has hard links enabled, and on whether a hard link to that file has been created.

If hard links are enabled, a file is actually deleted when there are no more links to that file. If hard links are not enabled and you have not created an alias for a file, only one link to that file exists: the primary link. If you create an alias for the file and you then delete the alias, the file still exists because the primary link to that file has not been deleted. The alias is just another name in a directory for this link. Deleting the primary link deletes the file and leaves the alias entries.

Attempting to access a file through an alias link to a deleted file results in a "no such file" error. With a primary link and hard links, many links exist. You delete a file when you delete both the primary link and all hard links to that file.

An important related consideration is disk quota. On OpenVMS, the size of each file is charged to the file owner's disk quota. If other users create hard links to a file, they are not charged disk quota. The file's owner can delete any links to the file in directories the owner can access, whereas hard links in other users' directories might cause the file to be retained; the owner continues to be charged for its quota.

When you enable hard link support on an existing volume, be sure to also use the ANALYZE/DISK/REPAIR command to ensure the proper operation of hard links.

OpenVMS supports hard links, or aliases, to directories as well as to files. Most UNIX systems limit hard links to normal files only. The following table shows the commands you use with hard links:
To Use
Enable hard links INITIALIZE or SET VOLUME
Disable hard links SET VOLUME device/VOLUME_CHARACTERISTICS=NOHARDLINKS
Create a hard link (or an alias for a file) SET FILE/ENTER

Examples

To enable hard links on a mounted Files-11 volume, use the following command:


$ SET VOLUME/VOLUME_CHARACTERISTICS=HARDLINKS

To initialize an ODS-5 disk with hard links enabled, use the following command:


$ INIT/VOLUME_CHARACTERISTICS=HARDLINKS

If you have a volume that has hard links enabled, and you want to disable hard links, use the following command:


$ SET VOLUME SYS$DISK/VOLUME_CHARACTERISTICS=NOHARDLINKS

Note that disabling hard links can result in some strange file behavior. For example, assume that you have disabled hard links, as shown in the preceding example, but you would like to create an alias for your file FOO. First you create an alias for FOO.A called FOO.B, as follows:


$ CREATE FOO.A
$ SET FILE FOO.A/ENTER=FOO.B

Now delete the original file:


$ DELETE FOO.A;1

However, if you look for FOO.B on the volume by entering the DIRECTORY command, you receive a "file not found" error because the primary link to that file no longer exists. To fix this problem, or to check the number of hard links to a file, enter the following command:


$ ANALYZE/DISK/REPAIR

ANALYZE/DISK/REPAIR counts the number of directory entries that reference each file and sets the link count if it is incorrect. Before you create aliases for files on disks that have previously had hard links enabled, be sure to use the ANALYZE/DISK/REPAIR command to set the link count correctly. If you are unsure whether hard links are currently enabled or disabled, use the SHOW DEVICE/FULL command.

To report link counts, use DIRECTORY/FULL and DUMP/HEADER. To check the number of links, enter the following command:


$ DIRECTORY/LINK

4.10.4 Case-Sensitive File Operations

Traditionally, OpenVMS stored all alphabetic characters in filename specifications as uppercase characters. In addition, file system operations using filename specifications were case insensitive.

The introduction of Extended File Specifications enabled system tools and applications to store and display file specifications containing lowercase as well as uppercase alphabetic characters on ODS-5 volumes.

Filename specification operations were still case insensitive.

With OpenVMS Version 7.3--1 it is now possible for tools and applications to distinguish among filename specifications containing the same alphabetic characters that differ in case only.

You can set processes to ignore or notice the case sensitivity of file names.

Note

Enable case sensitivity only when it is known to be supported by the layered product or application you are working with.

To match all case variants, use the SET PROCESS/CASE_LOOKUP=BLIND command. If your process is set to CASE_LOOKUP=BLIND and you create more than one file with the same name differing, only in case, DCL treats these files as new versions of the older file and converts them to the same case as the original file.

In the following example, DKA500 is an ODS-5 disk.


$ SET DEFAULT DKA500:[TEST] 
$ SET PROCESS /CASE=BLIND /PARSE_STYLE=EXTENDED 
$ CREATE COEfile.txt 
[Ctrl/Z]
$ CREATE COEFILE.TXT 
[Ctrl/Z]
$ CREATE CoEfile.TXT 
[Ctrl/Z]
 
$ DIRECTORY 
 
Directory DKA500:[TEST] 
 
COEfile.txt;3 
COEfile.txt;2 
COEfile.txt;1 

To create a case-sensitive process environment, use the SET PROCESS/CASE=SENSITIVE command. If your process is set to CASE=SENSITIVE and you create more than one file with the same name differing only in case, DCL treats subsequent files as new files and lists them as such. In the following example, DKA500 is an ODS-5 disk.


$ SET DEFAULT DKA500:[TEST] 
$ SET PROCESS /CASE=SENSITIVE /PARSE_STYLE=EXTENDED 
$ CREATE COEfile.txt 
[Ctrl/Z]
$ CREATE COEFILE.TXT 
[Ctrl/Z]
$ CREATE CoEfIlE.txt 
[Ctrl/Z]
$ DIRECTORY 
 
Directory DKA500:[TEST] 
 
CoEfIlE.txt;1 
COEFILE.TXT;1        
COEfile.txt;1 

Although an ODS-5 volume preserves the case of a file as it is first entered, file searches are performed in a case-blind manner. Therefore, be careful when you do file comparisons, such as using DCL string functions like .EQS. and F$LOCATE, in a DCL command procedure.

If you are using an application that expects case sensitivity, or if you depend on case sensitivity in your environment, set your process to /CASE=SENSITIVE. Be aware that using case sensitivity can create problems, if you do not pay attention to your environment.

The default is SET PROCESS /CASE=BLIND /PARSE_STYLE=EXTENDED.

4.10.4.1 Record Management System (RMS) Case Sensitivity

RMS uses the process default for case sensitivity as described in Section 4.10.4. The NAML block was introduced in OpenVMS Alpha Version 7.2 to support long file names. The NAML block has a new field, NAML$V_CASE_LOOKUP, to override the process default case sensitivity.

Within NAML$V_CASE_LOOKUP, you can set the following values for case sensitivity:
Field Name Description
NAML$C_CASE_LOOKUP_BLIND Set by the user to tell RMS to ignore case when creating, deleting, and searching for files.
NAML$C_CASE_LOOKUP_SENSITIVE Set by the user to tell RMS to include case as a criteria when creating, deleting, and searching for files.

If NAML$V_CASE_LOOKUP is zero, or if a NAML block is not used, the current process setting is used.

4.10.4.2 ACP/QIO Case Sensitivity

Directory entries are listed in case-blind order. Case-sensitive operations occur when a new FIB option, FIB$V_CASE_SENSITIVE, is set. ACP/QIO operations with the bit clear are case blind. The process default for case sensitivity does not apply to XQP.

4.10.4.3 System Services That Control the Process Case Sensitivity

The following changes have been made to system services to support case sensitivity:

The $SET_PROCESS_PROPERTIES system service sets a simple value associated with a service. OpenVMS Alpha Version 7.3--1 supports the following two new property codes for case sensitivity:
Property Code Description
PPROP$C_CASE_LOOKUP_TEMP The type of case lookup to use. This value is set for only the life of the image. The value reverts to the permanent style on image rundown. Valid values are PPROP$K_CASE_BLIND and PPROP$K_CASE_SENSITIVE.
PPROP$C_CASE_LOOKUP_PERM The type of case lookup to use. This value is set for the life of the process unless the style is set again. The value reverts to the permanent style on image rundown. Valid values are PPROP$K_CASE_BLIND and PPROP$K_CASE_SENSITIVE.

The two new item codes for the $GETJPI system service are:

These item codes return the values that are set by the $SET_PROCESS_PROPERTIESW system service, which can be either PPROP$K_CASE_BLIND or PPROP$K_CASE_SENSITIVE.

For more information about the $SET_PROCESS_PROPERTIESW system service, refer to the OpenVMS System Services Reference Manual.

4.10.4.4 DCL Case Sensitivity

The F$GETJPI lexical function has two new item codes, CASE_LOOKUP_IMAGE and CASE_LOOKUP_PERM, to return information about the case sensitivity of a process.

To change the case of a file name, use the RENAME command. You must previously have set your process to CASE=SENSITIVE for RENAME to work properly.

For example, to change the case of a file named JANCALENDAR.TXT, enter the following command:


$ RENAME JANCALENDAR.TXT JanCalendar.txt

This RENAME command renames JANCALENDAR.TXT to JanCalendar.txt.

4.10.4.5 C RTL Support

As of OpenVMS Alpha Version 7.3--1, the Compaq C Run-Time Library has greatly improved support for Extended File Specifications, with 250 of the 254 ODS-5 8-bit characters supported, as opposed to only 214 supported previously. Furthermore, file names can now be reported without file types.

To enable the new support, you must define one or more C RTL logical names. The settings of these logical names affect the behavior of C applications at run-time.

Enter the command DEFINE name ENABLE to define each logical name you need. For example:


$ DEFINE DECC$EFS_CHARSET ENABLE 

To disable this logical name, enter:


$ DEFINE DECC$EFS_CHARSET DISABLE 

There are six unsupported ODS-5 characters.

4.11 New Compaq Graphical Configuration Manager (GCM)

It is now easier for system managers to administer partitioned OpenVMS systems. The Compaq Graphical Configuration Manager (GCM) for OpenVMS is a portable client/server application that provides a visual means of viewing and controlling the configuration of partitioned AlphaServer systems running OpenVMS.

A GCM server runs on each OpenVMS partition in one or more AlphaServer systems.

The GCM client is a JAVA-based application that can run on any operating system that supports the JAVA runtime environment (JDK V1.2.2 or higher) and a TCP/IP network. From a GCM client, an OpenVMS system manager can establish a secure connection to one or more GCM servers, and perform the following functions:

For more detailed information, refer to the OpenVMS Alpha Partitioning and Galaxy Guide.


Previous Next Contents Index

  [Go to the documentation home page] [How to order documentation] [Help on this site] [How to contact us]  
  privacy and legal statement  
6657PRO_003.HTML