Document revision date: 15 July 2002 | |
Previous | Contents | Index |
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:
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 |
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 |
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 |
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.
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.
042 0x2a (*) Asterisk 063 0x3f (?) Question mark |
000 0x00 (\0) NUL (the string terminating character) 047 0x2f (/) Slash (the directory delimiter) |
033 0x21 (!) Exclamation point (interpreted as a node delimiter when preceded by characters acceptable in a node name) 034 0x22 (") Double quotation marks (reserved by the C RTL for use as a delimiter for quoting OpenVMS characters or elements of file names with no UNIX equivalent; quotation marks are currently used similarly in DECnet file specifications) |
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 |
privacy and legal statement | ||
6657PRO_003.HTML |