Modifies the characteristics of one or more files. See the qualifier descriptions for restrictions. For help about the RMS Journaling SET FILE commands, read the following subtopics: o /AI_JOURNAL - Marks one or more RMS files for after-image journaling. o /BI_JOURNAL - Marks one or more RMS files for before-image journaling. o /RU_ACTIVE - Designates the recoverable facility that controls active recovery units for the file. o /RU_FACILITY - Allows you to identify the recoverable facility that controls active recovery units on the file. o /RU_JOURNAL - Marks an RMS file for recovery unit journaling. Format SET FILE filespec[,...]
1 – Parameter
filespec[,...] Specifies one or more files to be modified. If you specify more than one file, separate the file specifications with commas (,). The asterisk (*) and the percent sign (%) wildcard characters are allowed.
2 – Qualifiers
2.1 /ATTRIBUTE
/ATTRIBUTE=(file-attribute[,...]) Sets the attributes associated with a file. The following table lists possible keywords and the relationship to both ACP-QIO and OpenVMS RMS File attributes: OpenVMS RMS File Keyword ACP-QIO File Attribute Attribute ATTDATE=dateFAT$C_ATTDATE XAB$Q_ATT ACCDATE=dateFAT$C_ACCDATE XAB$Q_ACC BAKDATE=dateFAT$C_BAKDATE XAB$Q_BDT BKS:value FAT$B_BKTSIZE=byte FAB$B_BKS=byte CREDATE=dateFAT$C_CREDATE XAB$Q_CDT DEQ:value FAT$W_DEFEXT=word FAB$W_DEQ=word EBK:value FAT$L_EFBLK=longword XAB$L_EBK=longword EXPDATE=dateFAT$C_EXPDATE XAB$Q_EDT FFB:value FAT$W_FFBYTE=word XAB$W_FFB=word FSZ:value FAT$B_VFCSIZE=byte FAB$B_FSZ=byte GBC:value FAT$W_GBC=word FAB$W_GBC=word HBK:value FAT$L_HIBLK=longword XAB$L_HBK=longword LRL:value FAT$W_RSIZE=word XAB$W_LRL=word MODDATE=dateFAT$C_MODDATE XAB$Q_MOD MRS:value FAT$W_MAXREC=word FAB$W_MRS=word ORG:IDX FAT$V_FILEORG=FAT$C_INDEXED FAB$B_ORG=FAB$C_IDX ORG:REL FAT$V_FILEORG=FAT$C_RELATIVE FAB$B_ORG=FAB$C_REL ORG:SEQ FAT$V_FILEORG=FAT$C_SEQUENTIAL FAB$B_ORG=FAB$C_SEQ RAT:BLK FAT$B_RATTRIB=FAT$M_NOSPAN FAB$B_RAT=FAB$M_BLK RAT:CR FAT$B_RATTRIB=FAT$M_IMPLIEDCC FAB$B_RAT=FAB$M_CR RAT:FTN FAT$B_RATTRIB=FAT$M_FORTRANCC FAB$B_RAT=FAB$M_FTN RAT:MSB FAT$B_RATTRIB=FAT$M_MSBVAR FAB$B_RAT=FAB$M_MSB RAT:NONE FAT$B_RATTRIB=0 FAB$B_RAT=0 RAT:PRN FAT$B_RATTRIB=FAT$M_PRINTCC FAB$B_RAT=FAB$M_PRN REVDATE=dateFAT$C_REVDATE XAB$Q_RDT RFM:FIX FAT$V_RTYPE=FAT$C_FIXED FAB$B_RFM=FAB$C_FIX RFM:STM FAT$V_RTYPE=FAT$C_STREAM FAB$B_RFM=FAB$C_STM RFM:STMCR FAT$V_RTYPE=FAT$C_STREAMCR FAB$B_RFM=FAB$C_STMCR RFM:STMLF FAT$V_RTYPE=FAT$C_STREAMLF FAB$B_RFM=FAB$C_STMLF RFM:UDF FAT$V_RTYPE=FAT$C_UNDEFINED FAB$B_RFM=FAB$C_UDF RFM:VAR FAT$V_RTYPE=FAT$C_VARIABLE FAB$B_RFM=FAB$C_VAR RFM:VFC FAT$V_RTYPE=FAT$C_VFC FAB$B_RFM=FAB$C_VFC VRS:value FAT$W_VERSIONS=word XAB$W_VERLIMIT=word
2.2 /BACKUP
/BACKUP /NOBACKUP Specifies that the Backup utility (BACKUP) records the contents of the file. The /NOBACKUP qualifier causes BACKUP to record the attributes of the file but not its contents. This qualifier is valid only for Files-11 Structure On-Disk Level 2 and 5 files. The /NOBACKUP qualifier is useful for saving files that contain unimportant data, such as SWAPFILES.
2.3 /BEFORE
/BEFORE[=time] Selects only those files dated prior to the specified time. You can specify time as absolute time, as a combination of absolute and delta times, or as one of the following keywords: BOOT, LOGIN, TODAY (default), TOMORROW, or YESTERDAY. Specify the /CREATED or the /MODIFIED qualifier to indicate the time attribute to be used as the basis for selection. The /CREATED qualifier is the default. For complete information on specifying time values, see the OpenVMS User's Manual or the online help topic Date.
2.4 /BY_OWNER
/BY_OWNER[=uic] Selects only those files whose owner user identification code (UIC) matches the specified owner UIC. The default UIC is that of the current process. Specify the UIC by using standard UIC format as described in the VSI OpenVMS Guide to System Security.
2.5 /CACHING_ATTRIBUTE
/CACHING_ATTRIBUTE=keyword Use this qualifier to control which files are cached by the Extended File Cache. It sets the caching attribute for a file or directory in a Files-11 ODS-2 or ODS-5 volume. The caching attribute of a file is the default caching option that is used by the Extended File Cache when an application accesses the file without specifying which caching option it wants to use. The keyword can be either WRITETHROUGH or NO_CACHING. Use WRITETHROUGH for files that you want to be cached. Use NO_CACHING for files that you don't want to be cached. The Extended File Cache does not cache directories. The caching attribute of a directory controls only how the caching attribute is inherited by new files and subdirectories created in the directory: o When you create a new directory or file, it inherits its caching attribute from its parent directory. o When you create a new version of an existing file, the new file inherits its caching attribute from the highest version of the existing file. When you use the INITIALIZE command to create a new Files- 11 volume, the caching attribute of its root directory (000000.DIR;1) is set to write-through. This means that by default, all the files and directories you create in the volume will inherit a caching attribute of write-through unless you use SET FILE /CACHING_ATTRIBUTE. When you change the caching attribute of a directory, it does not affect the caching attribute of any existing files and subdirectories in the directory. When you change the caching attribute of a file, it does not affect the type of caching being used by any applications that are currently accessing the file.
2.6 /CONFIRM
/CONFIRM /NOCONFIRM (default) Controls whether a request is issued before each SET FILE operation to confirm that the operation should be performed on that file. The following responses are valid: YES NO QUIT TRUE FALSE Ctrl/Z 1 0 ALL <Return> You can use any combination of uppercase and lowercase letters for word responses. Word responses can be abbreviated to one or more letters (for example, T, TR, or TRU for TRUE), but these abbreviations must be unique. Affirmative answers are YES, TRUE, and 1. Negative answers include: NO, FALSE, 0, and pressing Return. Entering QUIT or pressing Ctrl/Z indicates that you want to stop processing the command at that point. When you respond by entering ALL, the command continues to process, but no further prompts are given. If you type a response other than one of those in the list, DCL issues an error message and redisplays the prompt.
2.7 /CREATED
/CREATED (default) Modifies the time value specified with the /BEFORE or the /SINCE qualifier. The /CREATED qualifier selects files based on their dates of creation. This qualifier is incompatible with the /MODIFIED qualifier, which also allows you to select files according to time attributes. The /CREATED qualifier is the default qualifier.
2.8 /DATA_CHECK
/DATA_CHECK[=([NO]READ,[NO]WRITE)] Specifies whether a read data check (rereading each record), a write data check (reading each record after it is written), or a combination of the two is performed on the file during transfers. By default, a write data check is performed.
2.9 /END_OF_FILE
Resets the end-of-file (EOF) mark to the highest block allocated.
2.10 /ENTER
/ENTER=new-filespec The new-filespec parameter is used to create either an alias or a hard link for the file specified in the SET FILE command. For detailed information about using hard links and aliases, see the VSI OpenVMS System Manager's Manual. Normally you would use /ENTER to create an alias or a hard link in a directory different from the one where the original filename resides. If the names are not in different directories, you or another user could subsequently lose data during a delete or purge operation. The DELETE and PURGE commands and the file version limit feature can behave unpredictably if the original name and the new name are in the same directory. To remove an alias or hard link, use the SET FILE /REMOVE command. Exercise caution when using the DELETE and SET FILE /REMOVE commands, or you could end up with either an inaccessible file that has no name or a name that does not refer to a file. Follow these guidelines to avoid such problems: o Use SET FILE /REMOVE to remove an alias; do not use the DELETE command to remove an alias. o Do not use SET FILE /REMOVE to remove the original file name. If you do not follow these guidelines and encounter problems, use ANALYZE /DISK /REPAIR to move inaccessible files to the SYSLOST directory and remove names that no longer refer to files.
2.11 /ERASE_ON_DELETE
Specifies that the specified files are erased from the disk (not just written over) when the DELETE or PURGE command is issued for the files. See the DELETE/ERASE command for more information.
2.12 /EXCLUDE
/EXCLUDE=(filespec[,...]) Excludes the specified file from the SET FILE operation. You can include a directory name but not a device name in the file specifications. The asterisk (*) and the percent sign (%) wildcard characters are allowed in the file specification; however, you cannot use relative version numbers to exclude a specific version. If you specify only one file, you can omit the parentheses.
2.13 /EXPIRATION_DATE
/EXPIRATION_DATE=date /NOEXPIRATION_DATE Requires read (R), write (W), and control access. Being the owner of the file is one way to get control access. Controls whether an expiration date is assigned to the specified files. Specify the date according to the rules described in the OpenVMS User's Manual or the online help topic Date. Absolute date keywords are allowed. If you specify zero as the date, today's date is used.
2.14 /EXTENSION
/EXTENSION[=n] Sets the extend quantity default for the file. The value of the parameter n can range from 0 to 65,535. If you omit the value specification or specify a value of 0, OpenVMS Record Management Services (OpenVMS RMS) calculates its own value for the /EXTENSION qualifier. See the SET RMS_DEFAULT command for a description of the /EXTEND_ QUANTITY qualifier.
2.15 /GLOBAL_BUFFER
/GLOBAL_BUFFER[=keyword[=n]] /NOGLOBAL_BUFFER For OpenVMS versions prior to Version 8.3, sets the OpenVMS Record Management Services (OpenVMS RMS) global buffer count (the number of buffers that can be shared by processes accessing the file) for the specified files. The value n must be an integer in the range from 0 to 32,767. A value of 0 disables buffer sharing. The /SHARE qualifier can be used to enable or disable global buffers on a file currently being accessed; however, any new global buffer settings will only be applied to new accessors of the file. If a file is already open with global buffers, any new number of global buffers will not take effect until the file is closed by all accessors of the file. For OpenVMS V8.3 and later, sets the OpenVMS RMS global buffer count for the specified files. Note, you can specify only one type of global buffer qualifier in the same command string. The keyword can be: o COUNT=n-The value n sets the longword count of the number of global buffers. o PERCENT=p-The value p expresses the size of the global cache as a percent of the total number of used blocks currently used in the file. o DEFAULT-Requests RMS at runtime to recalculate the global cache size based on an algorithm that makes use of two global buffer SYSGEN parameters, GB_CACHEALLMAX and GB_DEFPERCENT. The following qualifiers can also be used with the /SHARE qualifier: o /GLOBAL_BUFFER=n o /GLOBAL_BUFFER=COUNT=n o /GLOBAL_BUFFER=PERCENT=n o /GLOBAL_BUFFER=DEFAULT o /NOGLOBAL_BUFFER o /[NO]STATISTICS
2.16 /LOG
/LOG /NOLOG (default) Displays the file specification of each file modified as the command executes.
2.17 /MODIFIED
/MODIFIED Modifies the time value specified with the /BEFORE or the /SINCE qualifier. The /MODIFIED qualifier selects files according to the dates on which they were last modified. This qualifier is incompatible with the /CREATED qualifier, which also allows you to select files according to time attributes. If you do not specify the /MODIFIED qualifier, the default is the /CREATED qualifier.
2.18 /MOVE
/MOVE /NOMOVE Controls whether movefile operations are enabled on the specified file. When you create a file, movefile operations are enabled on that file. You should disable movefile operations on specialized files that are accessed other than through the XQP (such as files accessed through logical I/O to a disk). Note that movefile operations are automatically disabled on critical system files. Do not enable movefile operations on these files.
2.19 /NODIRECTORY
Use with extreme caution. Requires SYSPRV (system privilege). Removes the directory attributes of a file and allows you to delete the corrupted directory file even if other files are contained in the directory. When you delete a corrupted directory file, the files contained within it are lost. Use ANALYZE/DISK_STRUCTURE/REPAIR to place the lost files in [SYSLOST]. You can then copy the lost files to a new directory. This qualifier is valid only for Files-11 On-Disk Structure Level 2 files. For more information about the Verify utility, see the VSI OpenVMS System Management Utilities Reference Manual.
2.20 /OWNER_UIC
/OWNER_UIC[=uic] This qualifier has been superseded by the SET SECURITY/OWNER command.
2.21 /PROTECTION
/PROTECTION[=(ownership[:access][,...])] This command has been superseded by the SET SECURITY/PROTECTION command.
2.22 /REMOVE
Use with caution. Enables you to remove one of the names of a file that has more than one name, without deleting the file. If you have created an additional name for a file with the /ENTER qualifier of SET FILE, you can use the /REMOVE qualifier to remove either the original name or the alias. The file still exists and can be accessed by whatever name or names remain in effect. However, if you accidentally remove the name of a file that has only one name, you cannot access that file with most DCL commands; use the ANALYZE/DISK_STRUCTURE utility to retrieve the file.
2.23 /SEMANTICS
/SEMANTICS=semantics-tag /NOSEMANTICS Use the /SEMANTICS qualifier to create or change a semantics tag. Use the /NOSEMANTICS qualifier to remove a semantics tag from a file. For more information, see the Guide to OpenVMS File Applications.
2.24 /SHARE
Allows you to enable or disable global buffers or statistics on a file currently being accessed by other users. Requires SYSPRV privilege. Only new accessors of the file acquire the new settings. For example, if a file is opened with no global buffers specified and the SET FILE/GLOBAL=n/SHARE command is issued, only new accessors of the file will use global buffers. If /STATISTICS is enabled on an active file, only operations performed by new accessors of the file are measured. If a file is already open with global buffers, any new number of global buffers will not take effect until the file is closed by all accessors of the file. The /SHARE qualifier is valid only with the following qualifiers: o /[NO]GLOBAL_BUFFER=n o /[NO]STATISTICS
2.25 /SHELVABLE
/SHELVABLE /NOSHELVABLE Controls whether the file is shelvable.
2.26 /SINCE
/SINCE[=time] Selects only those files dated on or after the specified time. You can specify time as absolute time, as a combination of absolute and delta times, or as one of the following keywords: BOOT, JOB_LOGIN, LOGIN, TODAY (default), TOMORROW, or YESTERDAY. Specify the /CREATED or the /MODIFIED qualifier to indicate the time attribute to be used as the basis for selection. The /CREATED qualifier is the default. For complete information on specifying time values, see the OpenVMS User's Manual or the online help topic Date.
2.27 /STATISTICS
/STATISTICS /NOSTATISTICS (default) Enables the gathering of RMS statistics on the specified file. These statistics can then be viewed by using the Monitor utility, which is invoked with the DCL command MONITOR. The SET FILE/STATISTICS command applies an application ACE to the specified file. The ACE does not affect access control and is only meaningful to the application assigning it. The /SHARE qualifier can be used to enable or disable statistics on a file currently being accessed. However, only statistics of new accessors of the file will be measured.
2.28 /STYLE
/STYLE=keyword Specifies the file name format for display purposes. The valid keywords for this qualifier are CONDENSED and EXPANDED. Descriptions are as follows: Keyword Explanation CONDENSED Displays the file name representation of what is (default) generated to fit into a 255-length character string. This file name may contain a DID or FID abbreviation in the file specification. EXPANDED Displays the file name representation of what is stored on disk. This file name does not contain any DID or FID abbreviations. The keywords CONDENSED and EXPANDED are mutually exclusive. This qualifier specifies which file name format is displayed in the output message, along with the confirmation if requested. File errors are displayed with the CONDENSED file specification unless the EXPANDED keyword is specified. See the OpenVMS User's Manual for more information.
2.29 /SYMLINK
/SYMLINK=keyword /NOSYMLINK (default) If an input file is a symbolic link, the file referred to by the symbolic link is the file that is set. The /SYMLINK qualifier indicates that the symbolic link itself is set. The valid keywords for this qualifier are [NO]WILDCARD, [NO]ELLIPSIS, and [NO]TARGET. Descriptions are as follows: Keyword Explanation NOWILDCARD Indicates that symlinks are disabled during directory wildcard searches. WILDCARD Indicates that symlinks are enabled during wildcard searches. NOELLIPSIS Indicates that symlinks are matched for all wildcard fields except for ellipsis. ELLIPSIS Equivalent to WILDCARD (included for command symmetry). TARGET Indicates that if the target file of the file specification is a symlink, then the target file is followed. NOTARGET Indicates that the command operates on the target file even if it is a symlink. If the file named in the SET FILE command is a symlink, the command by default operates on the symlink target.
2.30 /TRUNCATE
Truncates the file at the end of the block containing the end-of- file (EOF) marker, that is, the qualifier releases allocated but unused blocks of the file.
2.31 /UNLOCK
Clears a file marked as deaccess locked. Deaccess locking is required by and used by those few applications that maintain their own locking and consistency, typically without the use of the OpenVMS distributed lock manager, and potentially also without the use of RMS. When an application using deaccess locking does not correctly deaccess the file (often due to an application or system failure), the file is marked as locked, and is thus inaccessible until the integrity of the contents of the file are verified and the SET FILE/UNLOCK command is used. This command does not affect the state of files that are locked using RMS or the distributed lock manager. For details on file deaccess locking, see the VSI OpenVMS I/O User's Reference Manual, the ACP-QIO interface documentation, and specifically the FIB$V_DLOCK option available on the IO$_CREATE and IO$_ACCESS functions. The SET FILE/UNLOCK command can clear the cause of the following error message: %SYSTEM-W-FILELOCKED, file is deaccess locked However, this command cannot resolve the cause of the error message: %RMS-W-FLK, file currently locked by another user
2.32 /VERSION_LIMIT
/VERSION_LIMIT[=n] Sets the maximum number of versions that a specified file can have in a directory. If you do not set a version limit, a value of 0 is used, indicating that the number of file versions is limited only to the Files-11 architectural limit of 32,767. When creating a file, if the total number of versions of that file name exceeds the specified version limit, then the file with the lowest version number is deleted from the directory without notification to the user. If you set the version limit to 3 when there are already five versions of that file in a directory, there will continue to be five versions of that file unless you specifically delete some or purge the directory. Once the number of file versions is equal to or less than the current version limit, this version limit is maintained. The version limit applies to all existing versions of a specified file in a directory regardless of whether or not you specified any version in the command. To view the version limit on a file, use the DIRECTORY/FULL command on a file name and look at the File Attributes field of the output or use the F$FILE_ATTRIBUTES(filename,"VERLIMIT") lexical function.
3 – Examples
1.$ SET FILE/EXPIRATION_DATE=19-DEC-2001:11:00 BATCH.COM;3 The SET FILE command requests that the expiration date of the file BATCH.COM;3 be set to 11:00 A.M., December 19, 2001. 2.$ SET FILE/BEFORE=31-DEC/ERASE_ON_DELETE PERSONNEL*.SAL This SET FILE command calls for all files that match the file specification PERSONNEL*.SAL and are dated before December 31 of the current year to have their disk locations erased whenever one of them is deleted with commands such as DELETE or PURGE. 3.$ SET FILE/OWNER_UIC=[360,020]/VERSION_LIMIT=100 MYFILE.DAT The SET FILE command modifies the characteristics of the file MYFILE.DAT, changing the owner user identification code (*). You must have system privilege (SYSPRV) to change the owner UIC. 4.$ SET FILE/NOMOVE TEST.FDL $DIRECTORY/FULL TEST.FDL Directory SYS$SYSDEVICE:[BERGMANN] TEST.FDL;1 File ID: (10,8,0) . . . File attributes: Allocation: s, Extend: 0, Global buffer count: 0 No version limit, MoveFile disabled . . . Movefile operations are disabled on the file TEST.FDL. A DIRECTORY/FULL command on the file TEST.FDL affirms that the file attribute Movefile is disabled. 5.$ SET FILE/ATTRIBUTES=ORG:SEQ - _$ TEST$:[DATA]SET_ATTRIBUTES.DATA_FILE/LOG %SET-I-MODIFIED, TEST$:[DATA]SET_ATTRIBUTES.DATA_FILE;1 MODIFIED The command, SET FILE/ATTRIBUTES, changes the file organization of the specified file. 6.$ SET FILE/PROTECTION=(S:RWE,O=RWE,G:RE,W:RE) TEMP.DIR $ DIRECTORY/PROTECTION TEMP.DIR Directory DKB0:[FULGHUM] TEMP.DIR;1 (RWE,RWE,RE,RE) This example sets the protection on the TEMP.DIR file with the SET FILE command and then displays the protection of the file with the DIRECTORY command. 7.$ SET FILE/SHARE/GLOBAL_BUFFER=5000/STATISTICS INVENTORY.IDX This example sets 5000 global buffers on the INVENTORY.IDX file and enables statistics. If the file is open and the SET FILE command is issued without the /SHARE qualifier, the following error is returned: SYSTEM-W-ACCONFLICT (file access conflict). The /SHARE qualifier allows the global buffers and statistics to be enabled on an open file; however, these settings only apply to new accessors of the file. 8.$ SET FILE/GLOBAL_BUFFER=100 NEWFILE.DAT $ SET FILE/GLOBAL_BUFFER=COUNT=100000 NEWFILE.DAT In a clustered environment with mixed OpenVMS versions, the same file can be opened on different nodes with different global buffer counts. For nodes prior to Version 8.3, use the old compatibility setting, and for Version 8.3 nodes and later use the new values. 9.$ DIRECTORY NEWFILE.TXT Directory WORK:[DOCUMENTS] NEWFILE.TXT;3 NEWFILE.TXT;2 NEWFILE.TXT;1 Total of 3 files. $ SET FILE/VERSION_LIMIT=10/LOG NEWFILE.TXT; %SET-I-MODIFIED, WORK:[DOCUMENTS]NEWFILE.TXT;3 modified This example sets the version limit of 10 on all three existing versions of NEWFILE.TXT. Note that in this case, the /LOG qualifier shows only the highest version file specification as modified though the version limit has been applied to all file versions.
4 /AI_JOURNAL
Requires read (R), write (W), and control access. Being the owner of the file is one way to get control access. Marks one or more RMS files for after-image journaling. You can also specify certain characteristics of the journal with this command, including its file specification, whether it is to be created, its initial size, and its default extension quantity. The SET FILE/NOAI_JOURNAL command unmarks a file for after-image journaling. The SET FILE command is not supported for remote files. You must use the SET FILE command from the system where the file is located. For more information, see the RMS Journaling documentation. Format SET FILE/[NO]AI_JOURNAL=(FILE=journal-filespec[,...]) data-filespec[,...]
4.1 – Parameter
data-filespec[,...] Identifies the file to be marked for after-image journaling. If you specify more than one file, separate the file specifications with commas. The asterisk (*) and the percent sign (%) wildcard characters are allowed. The file specification cannot include a node name, since the SET FILE command is not valid for network access.
4.2 – Description
The SET FILE/AI_JOURNAL command marks one or more RMS files for after-image journaling. You can also specify certain characteristics of the journal with this command, including its file specification, whether it is to be created, its initial size, and its default extension quantity. The SET FILE/NOAI_ JOURNAL command unmarks a file for after-image journaling. After a data file is marked for after-image journaling with the SET FILE/AI_JOURNAL command, the following events occur whenever the file is opened by RMS for write operations: o The journal is opened. o All subsequent modifications to the data file are recorded in the journal. NOTE To be able to recover the data file at a later time, you must make a backup copy of the data file, even if it contains no data. You must use the FILE keyword to specify a journal. By default, any portions of the file specification that you omit will be the same as the data file that is to be journaled, but with the file type RMS$JOURNAL. That is, if you issue the following command, then, by default, the file specification for the after-image journal is JOURNAL_DISK:PAYROLL.RMS$JOURNAL: $ SET FILE/AI_JOURNAL=(FILE=JOURNAL_DISK:) FINANCE_DISK:PAYROLL.DAT You should always keep the journal for after-image applications on a different volume from that of your data file. If recovery becomes necessary, you will be able to perform after-image recovery only if a backup copy of the data file is available. Use the FILE keyword to specify the journal location. Use the SET FILE/NOAI_JOURNAL command to unmark a file for after- image journaling. After you use the SET FILE/NOAI_JOURNAL command for a file, modifications to that data file will no longer be written to the journal. You must use the SET FILE/NOAI_JOURNAL command before you can delete a file that has been marked for after-image journaling.
4.3 – Keywords
Four keywords are used as parameters to the SET FILE/AI_JOURNAL command: ALLOCATION, [NO]CREATE, EXTENSION, and FILE. You must always use the FILE keyword; you can also use any, all, or none of the other three keywords. Use an equal sign (=) immediately after the SET FILE/AI_JOURNAL command to use a keyword. If you use more than one of the keywords, enclose the list in parentheses and separate the items in the list with commas. ALLOCATION=n Specifies the initial size, in blocks, of the journal. The ALLOCATION keyword is meaningful only when the CREATE keyword is also used. The default allocation is 0 blocks. CREATE Specifies that a new journal is to be created. If no journal exists, using this keyword creates a new one. If a journal (with the file specification given in this command) already exists, using this keyword creates a new version of the journal. In the latter instance, the data file named in this SET FILE command is journaled to the new journal. Any other files that are being journaled to the previous version of the journal will continue to be journaled to that previous version. If a journal does not already exist, be sure to use the CREATE keyword with the SET FILE/AI_JOURNAL command. If you do not specify the CREATE keyword and the file that you specify with the FILE keyword does not exist, a journal will not automatically be created and an error message is displayed. When you create a journal for after-image journaling, the file protection for the journal is determined as follows: o If a version of the journal that you specify with the CREATE keyword already exists, then the new version of the journal has the same file protection and access control list (ACL) as the most recent version. o If there is no existing journal (that is, if you are creating version 1 of the journal), then the file protection and ACL of the journal are the default file protection for the process that creates the journal, except that none of the four ownership categories (system, owner, group, world) is given delete access. Also, every time that you use the CREATE keyword, be sure to make a backup copy of the data file. (If it is the first time that the data file is marked for after-image journaling, then you must make a backup copy of the data file, regardless of whether the CREATE keyword is used.) NOTE To be able to recover the data file at a later time, you must mark the file for journaling, and then make a backup copy of the data file, even if it contains no data. In most cases (in particular, when you are using after-image journaling to protect against loss of data from a device failure), you should keep the backup copy on a different volume from the data file. If recovery becomes necessary, you will be able to perform after-image recovery only if a backup copy of the data file is available. If you want to use a single journal for both after-image and before-image journaling, do not use the CREATE keyword with both the /AI_JOURNAL and /BI_JOURNAL qualifiers, because that will create two separate journals. When you create a journal that will be used for more than one data file or more than one type of journaling (after-image or before-image), you should first use a SET FILE command to create the journal for a single type of journaling and for a single data file. After the journal is created, then you can use a single SET FILE command for multiple data files and both after-image and before-image journaling. For example, you might use the following sequence of commands: $ SET FILE/AI_JOURNAL=(FILE=JNL_DISK:,CREATE) [WEEKLY]SALES.DAT $ SET FILE/BI_JOURNAL=(FILE=JNL_DISK:[WEEKLY]SALES) - _$INVOICES.DAT,COMMISSIONS.DAT EXTENSION=n Specifies the default extension quantity, in blocks, for the journal. You can specify a value from 0 to 65,535. The EXTENSION keyword is meaningful only when you use the CREATE keyword. If the file is extended, the value that you specify is used. If you do not use the EXTENSION keyword when you create a journal, RMS calculates its own EXTENSION value for the journal. FILE=journal-filespec Specifies the journal where all modifications to the named data file will be recorded. The default file specification for the journal is the file specification of the data file that you name, but with a file type of RMS$JOURNAL. If you provide a partial file specification for the journal, any unspecified portions are taken from the default file specification. The FILE keyword is required when you use the SET FILE/AI_JOURNAL command. If you are using after-image journaling to protect against the loss of data due to a device failure (such as a head crash), you should keep the journal on a different volume from the one on which the data file is kept. Only by keeping the data file and journals on separate volumes can you use after-image recovery to restore the data file if its recording medium becomes corrupted (for example, by a disk head crash). If you issue the SET FILE/AI_JOURNAL command and the journal is on the same volume as the data file being marked for after-image journaling, the INVAIJDEV warning message is issued. The file specification cannot include a node name, since the SET FILE command is not valid for network access. You can use a single journal for multiple data files for after- image journaling, and you can also use a single journal for both after-image and before-image journaling.
4.4 – Qualifier
4.4.1 /LOG
/LOG /NOLOG (default) Controls whether the SET FILE command displays the file specification and the type of journaling that has been set. By default, this information is not displayed.
4.5 – EXAMPLES
1.$ SET FILE /AI_JOURNAL=(FILE=JOURNAL_DISK:,CREATE) - _$FINANCE_DISK:[PAYROLL]WEEKLY.DAT In this example, the file FINANCE_DISK:[PAYROLL]WEEKLY.DAT is marked for after-image journaling. The required FILE keyword is used to place the journal on the disk JOURNAL_DISK, and the CREATE keyword generates a new version of the journal. The file specification for the journal will be JOURNAL_ DISK:[PAYROLL]WEEKLY.RMS$JOURNAL. The next step in the after-image journaling process after issuing this command is to back up the data file. 2.$ SET FILE/AI_JOURNAL=(FILE=JOURNAL_DISK:,CREATE)/LOG SALES.DAT %SET-I-JCREATED, journal JOURNAL_DISK:[REGION_1]SALES.RMS$JOURNAL;1 created %SET-I-FILMARKAI, FINANCE_DISK:[REGION_1]SALES.DAT;1 marked for RMS after-image journaling -SET-I-JFILE, using journal JOURNAL_DISK:[REGION_1]SALES.RMS$JOURNAL;1 %SET-I-MODIFIED, FINANCE_DISK:[REGION_1]SALES.DAT;1 modified In this example, the file SALES.DAT in default directory FINANCE_DISK:[REGION_1] is marked for after-image journaling and the /LOG qualifier causes the result of the SET FILE command to be displayed on the terminal. 3.$ SET FILE/AI_JOURNAL=(FILE=JNL_DISK:,CREATE)/LOG OVERDUE.DAT %SET-I-JCREATED, journal JNL_DISK:[PAYABLE]OVERDUE.RMS$JOURNAL;1 created %SET-I-FILMARKAI, WORK_DISK:[PAYABLE]OVERDUE.DAT;1 marked for RMS after-image journaling -SET-I-JFILE, using journal JNL_DISK:[PAYABLE]OVERDUE.RMS$JOURNAL;1 %SET-I-MODIFIED, WORK_DISK:[PAYABLE]OVERDUE.DAT;1 modified $ SET FILE/BI_JOURNAL=(FILE=JNL_DISK:)/RU_JOURNAL/LOG OVERDUE.DAT %SET-I-FILMARKBI, WORK_DISK:[PAYABLE]OVERDUE.DAT;1 marked for RMS before-image journaling -SET-I-JFILE, using journal JNL_DISK:[PAYABLE]OVERDUE.RMS$JOURNAL;1 %SET-I-FILMARKRU, WORK_DISK:[PAYABLE]OVERDUE.DAT;1 marked for RMS recovery-unit journaling %SET-I-MODIFIED, WORK_DISK:[PAYABLE]OVERDUE.DAT;1 modified In this example, the file OVERDUE.DAT is marked for all three types of journaling using two SET FILE commands. A single journal (JNL_DISK:[PAYABLE]OVERDUE.RMS$JOURNAL) will be used for after-image and before-image journaling. The first SET FILE command uses the /CREATE qualifier to create a new after-image journal, JNL_DISK:[PAYABLE]OVERDUE.RMS$JOURNAL. The file specification uses the current default directory [PAYABLE] and the default file extension RMS$JOURNAL. The second SET FILE command checks the disk JNL_DISK to see whether a journal already exists, and uses the existing journal for before-image journaling, as well as after-image journaling. 4.$ SET FILE/NOAI_JOURNAL/NOBI_JOURNAL - _$ WORK_DISK:[PAYABLE]OVERDUE.DAT,VENDORS.DAT In this example, the files OVERDUE.DAT and VENDORS.DAT are unmarked for both after-image and before-image journaling. It is not necessary to specify the journals that were used. If more than one journaling type was applied to the data files (as in the previous example), then you must cancel each of the journaling types before you can delete the data files. 5.$ SET FILE/AI_JOURNAL=(FILE=JOURNAL_DISK,CREATE)- _$ /RU_JOURNAL [FIELD]SALARY.DAT $ SET FILE/AI_JOURNAL=(FILE=JOURNAL_DISK:[FIELD]SALARY)- _$ /RU_JOURNAL CHECKS.DAT In this example, the files SALARY.DAT and CHECKS.DAT are both marked for after-image and for recovery unit journaling. The after-image journaling for both files is written to the same journal, JOURNAL_DISK:[FIELD]SALARY.RMS$JOURNAL.
5 /BI_JOURNAL
Requires read (R), write (W), and control access. Being the owner of the file is one way to get control access. Marks one or more RMS files for before-image journaling. You can also specify certain characteristics of the journal with this command, including its file specification, whether it is to be created, its initial size, and its default extension quantity. The SET FILE/NOBI_JOURNAL command unmarks a file for before-image journaling. The SET FILE command is not supported for remote files. You must use the SET FILE command from the system where the file is located. For more information, see the RMS Journaling documentation. Format SET FILE/[NO]BI_JOURNAL[=(keyword[,...])] data-filespec[,...]
5.1 – Parameter
data-filespec[,...] Identifies the file to be marked for before-image journaling. If you specify more than one file, separate the file specifications with commas. The asterisk (*) and the percent sign (%) wildcard characters are allowed. The file specification cannot include a node name, since the SET FILE command is not valid for network access.
5.2 – Description
The SET FILE/BI_JOURNAL command marks one or more RMS files for before-image journaling. You can also specify certain characteristics of the journal with this command, including its file specification, whether it is to be created, its initial size, and its default extension quantity. The SET FILE/NOBI_ JOURNAL command unmarks a file for before-image journaling. After a data file is marked for before-image journaling with the SET FILE/BI_JOURNAL command, the following events occur whenever the data file is opened by RMS for write operations: o The journal is opened. o All subsequent modifications to the data file are recorded in the journal. By default, the journal has the same file specification as the data file that is to be journaled, but with the file type RMS$JOURNAL. That is, if you issue the following command, then, by default, the file specification for the before-image journal is FINANCE_DISK:PAYROLL.RMS$JOURNAL: $ SET FILE/BI_JOURNAL FINANCE_DISK:PAYROLL.DAT If erroneous or corrupt data is introduced into the data file, you can use the RMS Recovery Utility to "roll back" the data file that has been marked for before-image journaling. This will allow you to restore the data file to a previous state by removing data until a specified time (prior to the introduction of bad data). Use the SET FILE/NOBI_JOURNAL command to unmark a file for before-image journaling. After you use the SET FILE/NOBI_JOURNAL command for a file, modifications to that data file will no longer be written to the journal. You must use the SET FILE/NOBI_JOURNAL command before you can delete a file that has been marked for before-image journaling.
5.3 – Keywords
Four keywords are used as optional parameters to the SET FILE/BI_ JOURNAL command: ALLOCATION, [NO]CREATE, EXTENSION, and FILE. You can use any, all, or none of these keywords. Use an equal sign (=) immediately after the SET FILE/BI_JOURNAL command to use a keyword. If you use more than one of the keywords, enclose the list in parentheses and separate the items in the list with commas. ALLOCATION=n Specifies the initial size, in blocks, of the journal. The ALLOCATION keyword is meaningful only when the CREATE keyword is also used. The default allocation is 0 blocks. CREATE Specifies that a new journal is to be created. If no journal exists, using this keyword creates a new one. If a journal (with the file specification given in this command) already exists, using this keyword creates a new version of the journal. In the latter instance, the data file named in this SET FILE command is journaled to the new journal. Any other files that are being journaled to the previous version of the journal will continue to be journaled to that previous version. If a journal does not already exist, be sure to use the CREATE keyword with the SET FILE/BI_JOURNAL command. If you do not specify the CREATE keyword and a journal does not exist, a journal is not automatically created and an error message is displayed. When you create a journal for before-image journaling, the file protection for the journal is determined as follows: o If a version of the journal that you specify with the CREATE keyword already exists, then the new version of the journal has the same file protection and access control list (ACL) as the most recent version. o If there is no existing journal (that is, if you are creating version 1 of the journal), then the file protection and ACL of the journal are the default file protection for the process that creates the journal, except that none of the four ownership categories (system, owner, group, world) is given delete access. If you want to use a single journal for both after-image and before-image journaling, do not use the CREATE keyword with both the /AI_JOURNAL and /BI_JOURNAL qualifiers, because that will create two separate journals. When you create a journal that will be used for more than one data file or more than one type of journaling (after-image or before-image), you should first use a SET FILE command to create the journal for a single type of journaling and for a single data file. After the journal is created, then you can use a single SET FILE command for multiple data files and both after-image and before-image journaling. For example, you might use the following sequence of commands: $ SET FILE/AI_JOURNAL=(FILE=JNL_DISK:,CREATE) [WEEKLY]SALES.DAT $ SET FILE/BI_JOURNAL=(FILE=JNL_DISK:[WEEKLY]SALES) - _$INVOICES.DAT,COMMISSIONS.DAT EXTENSION=n Specifies the default extension quantity, in blocks, for the journal. You can specify a value from 0 to 65,535. The EXTENSION keyword is meaningful only when you use the CREATE keyword. If the file is extended, the value that you specify is used. If you do not use the EXTENSION keyword when you create a journal, RMS calculates its own EXTENSION value for the journal. FILE=journal-filespec Specifies the journal where all before-image journal entries for the data file will be recorded. The default file specification for the journal is the file specification of the data file that you name, but with a file type of RMS$JOURNAL. Use the FILE keyword if you wish to modify this default file specification for the journal. If you provide a partial file specification for the before-image journal, any unspecified portions are taken from the default file specification. The file specification cannot include a node name, since the SET FILE command is not valid for network access. The FILE keyword is optional with the SET FILE/BI_JOURNAL command. You can use a single journal for multiple data files for before- image journaling, and you can also use the same journal for both before-image and after-image journaling.
5.4 – Qualifier
5.4.1 /LOG
/LOG /NOLOG (default) Controls whether the SET FILE command displays the file specification and the type of journaling that has been set. By default, this information is not displayed.
5.5 – EXAMPLES
1.$ SET FILE/BI_JOURNAL=(FILE=JOURNAL_DISK:,CREATE) - _$FINANCE_DISK:[PAYROLL]WEEKLY.DAT In this example, the file FINANCE_DISK:[PAYROLL]WEEKLY.DAT is marked for before-image journaling. The FILE keyword, together with the defaults obtained from the file specification of the data file, provides the journal with a file specification of JOURNAL_DISK:[PAYROLL]WEEKLY.RMS$JOURNAL. Because the CREATE keyword was used, this journal is created when this SET FILE command is given. 2.$ SET FILE/BI_JOURNAL=CREATE/LOG SALES.DAT %SET-I-JCREATED,journal FINANCE_DISK:[REGION_1]SALES.RMS$JOURNAL;1 created %SET-I-FILMARKBI, FINANCE_DISK:[REGION_1]SALES.DAT marked for RMS before-image journaling -SET-I-JFILE,using journal FINANCE_DISK:[REGION_1]SALES.RMS$JOURNAL;1 %SET-I-MODIFIED, FINANCE_DISK:[REGION_1]SALES.DAT modified In this example, the file SALES.DAT in default directory FINANCE_DISK:[REGION_1] is marked for before-image journaling and the /LOG qualifier causes the result of the SET FILE command to be displayed on the terminal. 3.$ SET FILE/BI_JOURNAL=(FILE=JNL_DISK:, CREATE)/LOG OVERDUE.DAT %SET-I-JCREATED, journal JNL_DISK:[PAYABLE]OVERDUE.RMS$JOURNAL;1 created %SET-I-FILMARKBI, WORK_DISK:[PAYABLE]OVERDUE.DAT;1 marked for RMS before-image journaling -SET-I-JFILE, using journal JNL_DISK:[PAYABLE]OVERDUE.RMS$JOURNAL;1 %SET-I-MODIFIED, WORK_DISK:[PAYABLE]OVERDUE.DAT;1 modified $ SET FILE/AI_JOURNAL=(FILE=JNL_DISK:)/RU_JOURNAL/LOG OVERDUE.DAT %SET-I-FILMARKAI, WORK_DISK:[PAYABLE]OVERDUE.DAT;1 marked for RMS after-image journaling -SET-I-JFILE, using journal JNL_DISK:[PAYABLE]OVERDUE.RMS$JOURNAL;1 %SET-I-FILMARKRU, WORK_DISK:[PAYABLE]OVERDUE.DAT;1 marked for RMS recovery-unit journaling %SET-I-MODIFIED, WORK_DISK:[PAYABLE]OVERDUE.DAT;1 modified In this example, the file OVERDUE.DAT is marked for all three types of journaling using two SET FILE commands. A single journal (JNL_DISK:[PAYABLE]OVERDUE.RMS$JOURNAL) will be used for after-image and before-image journaling. The first SET FILE command uses the /CREATE qualifier to create a new before-image journal, JNL_DISK:[PAYABLE]OVERDUE.RMS$JOURNAL. The file specification uses the current default directory [PAYABLE] and the default file extension RMS$JOURNAL. The second SET FILE command checks the disk JNL_DISK to see whether a journal already exists, and uses the existing journal for after-image journaling, as well as before-image journaling. 4.$ SET FILE/NOBI_JOURNAL/NOAI_JOURNAL- _$ WORK_DISK:[PAYABLE]OVERDUE.DAT,VENDORS.DAT In this example, the files OVERDUE.DAT and VENDORS.DAT are unmarked for both before-image and after-image journaling. It is not necessary to specify the journals that were used. If more than one journaling type was applied to the data files (as in the previous example), then you must cancel each of the journaling types before you can delete the data files. 5.$ SET FILE/BI_JOURNAL=(FILE=JOURNAL_DISK,CREATE)/RU_JOURNAL [FIELD]SALARY.DAT $ SET FILE/BI_JOURNAL=(FILE=JOURNAL_DISK:[FIELD]SALARY) /RU_JOURNAL CHECKS.DAT In this example, the files SALARY.DAT and CHECKS.DAT are both marked for before-image and for recovery unit journaling. The before-image journaling for both files is written to the same journal, JOURNAL_DISK:[FIELD]SALARY.RMS$JOURNAL.
6 /RU_ACTIVE
Requires read (R), write (W), and control access. Being the owner of the file is one way to get control access. Designates the recoverable facility that controls active recovery units for the file. Alternatively, when used with the /RU_ FACILITY qualifier, the SET FILE/RU_ACTIVE command lets you clear the designated recoverable facility that controls active recovery units for the specified file. The SET FILE command is not supported for remote files. You must use the SET FILE command from the system where the file is located. For more information, see the RMS Journaling documentation. Format SET FILE/[NO]RU_ACTIVE=ru-facility data-filespec[,...]
6.1 – Parameters
ru-facility Specifies the number or name of a recoverable facility. It can be an integer from 0 through 255, or it can be the name of an VSI-registered recoverable facility. Facility numbers 1 through 127 are reserved by VSI; facility numbers 128 through 255 are available for user-written recoverable facilities. RMS is recoverable facility 1; specifying the number 1 is equivalent to using the text * corresponds to no recoverable facility and is equivalent to using the qualifier /NORU_ACTIVE. Currently, the only VSI-defined recoverable facility is 1 (RMS). data-filespec[,...] Specifies the file that is to be modified. If you specify more than one file, separate the file specifications with commas. The asterisk (*) and the percent sign (%) wildcard characters are allowed. The file specification cannot include a node name, since the SET FILE command is not valid for network access.
6.2 – Description
The SET FILE/RU_ACTIVE command designates the recoverable facility that controls active recovery units for the file. Alternatively, when used with the /RU_FACILITY qualifier, the SET FILE/RU_ACTIVE command lets you clear the designated recoverable facility that controls active recovery units for the specified file. This is useful if a data file is unavailable due to active recovery units and an unavailable recovery unit journal. CAUTION When you clear the RU_ACTIVE attribute (using the command SET FILE/RU_ACTIVE=0/RU_FACILITY=1), the data in the file is likely to be in an inconsistent state. Do not use the data file unless you can ensure that the data is consistent. After clearing the RU_ACTIVE attribute, you can unmark the file for journaling, delete the file, and re-create a consistent file using a backup copy. You can determine the recoverable facility that controls active recovery units (if any) for the file by entering the DCL command DIRECTORY/FULL or DUMP/HEADER. You can use the ANALYZE/RMS_ FILE/RU_JOURNAL command to determine the state of any active recovery units.
6.3 – Qualifier
6.3.1 /LOG
/LOG /NOLOG(default) Controls whether the SET FILE command displays the file specification and the type of facility that has been specified. By default, this information is not displayed.
6.4 – EXAMPLES
1.$ SET FILE/RU_FACILITY=1/RU_ACTIVE=0- _$ FINANCE_DISK:[PAYROLL]WEEKLY.DAT If the file WEEKLY.DAT is unavailable due to active recovery units and an unavailable recovery unit journal, you can use this command to gain access to the file. In this example, the recoverable facility is defined as RMS by the /RU_FACILITY=1 qualifier. The RU_ACTIVE attribute that indicates active RMS recovery units for the file WEEKLY.DAT is cleared by the /RU_ ACTIVE=0 qualifier. CAUTION The data in the file may be inconsistent if there are active recovery units. VSI recommends that you not use the contents of the data file unless you can verify that the data is consistent. VSI also recommends that you make a new copy of the file using the Convert Utility and that you use the converted copy in place of the original.
7 /RU_FACILITY
Allows you to identify the recoverable facility that controls active recovery units on the file. The SET FILE command is not supported for remote files. You must use the SET FILE command from the system where the file is located. For more information, see the RMS Journaling documentation. Format SET FILE/RU_FACILITY=ru-facility data-filespec[,...]
7.1 – Parameters
ru-facility Specifies the number or name of a recoverable facility. It can be an integer from 0 through 255, or it can be the name of an VSI-registered recoverable facility. Facility numbers 1 through 127 are reserved by VSI; facility numbers 128 through 255 are available for user-written recoverable facilities. RMS is recoverable facility 1; specifying the number 1 is equivalent to using the text RMS. The number 0 corresponds to no recoverable facility. Currently, the only VSI-defined recoverable facility is 1 (RMS). The recoverable facility that you specify is an input parameter that is used only to open the file; it does not actually modify any file attributes. data-filespec[,...] Specifies the file that is to be modified. If you specify more than one file, separate the file specifications with commas. The asterisk (*) and the percent sign (%) wildcard characters are allowed. The file specification cannot include a node name, since the SET FILE command is not valid for network access.
7.2 – Description
The SET FILE/RU_FACILITY command allows you to identify the recoverable facility that controls active recovery units on the file. You can use any other SET FILE qualifier with the /RU_ FACILITY qualifier. When a data file has active recovery units and RMS journaling cannot resolve the recovery units (for example, if the recovery unit journal is unavailable), the data file cannot be opened or deleted. The presence of active recovery units prevents you from unmarking (or marking) a file for any journaling type. With the SET FILE/RU_FACILITY/RU_ACTIVE command, you can clear the designated recoverable facility that controls active recovery units for the data file. CAUTION When you clear the RU_FACILITY attribute (with the command SET FILE/RU_ACTIVE=0/RU_FACILITY=1), the data in the file is likely to be in an inconsistent state. Do not use the data file unless you can ensure that the data is consistent. After clearing the RU_ACTIVE attribute, you can unmark the file for journaling, delete the file, and re-create a consistent file using a backup copy. You can determine the recoverable facility that controls active recovery units (if any) for the file by entering the DCL command DIRECTORY/FULL or DUMP/HEADER. You can use the ANALYZE/RMS_ FILE/RU_JOURNAL command to determine the state of any active recovery units.
7.3 – Examples
1.$ SET FILE/RU_FACILITY=1/NORU_JOURNAL/NOAI_JOURNAL/LOG SAVINGS.DAT %SET-I-FILUNMARKAI, $DISK1:[PERSONAL]SAVINGS.DAT;1 unmarked for RMS after-image journaling %SET-I-FILUNMARKRU, $DISK1:[PERSONAL]SAVINGS.DAT;1 unmarked for RMS recovery-unit journaling %SET-I-MODIFIED, $DISK1:[PERSONAL]SAVINGS.DAT;1 modified $ DELETE SAVINGS.DAT;* This example shows the use of the /RU_FACILITY qualifier to allow SET FILE access to a data file. The SET FILE command identifies the recoverable facility holding the file and it also unmarks the file for recovery unit and after-image journaling. After these steps, it is then possible to delete the data file. CAUTION If it becomes necessary to use the /RU_FACILITY qualifier because of active recovery units, the data in the file may be inconsistent. VSI recommends that you not use the data file unless you can verify that the data is consistent. VSI also recommends that you make a new copy of the file using the Convert Utility and that you use the converted copy in place of the original. 2.$ SET FILE/RU_FACILITY=RMS/RU_ACTIVE=0 SALES.DAT In this example, the recoverable facility for the file SALES.DAT is identified as RMS by the /RU_FACILITY=RMS qualifier, and the RU active file attribute (which indicates active RMS recovery units) is cleared by the /RU_ACTIVE=0 qualifier. If the file SALES.DAT is unavailable due to active recovery units and an unavailable recovery unit journal, you can use this command to gain access to the file. As in the previous example, this operation leaves the data file in an inconsistent state. In general, use this command to delete the data file, then restore the file from a backup copy.
8 /RU_JOURNAL
Requires read (R), write (W), and control access. Being the owner of the file is one way to get control access. Marks an RMS file for recovery unit journaling. The SET FILE command is not supported for remote files. You must use the SET FILE command from the system where the file is located. For more information, see the RMS Journaling documentation. Format SET FILE/[NO]RU_JOURNAL[=volume-name] data-filespec[,...]
8.1 – Parameters
volume-name Specifies the volume on which the recovery unit journals will be located, using one of the following keywords: o DEVICE=device_name specifies a device name or logical name. o LABEL=volume-label specifies a volume label. By default, recovery unit journals are created temporarily in the [SYSJNL] directory on the same volume as the file that is being journaled. (If such a directory does not exist, RMS journaling creates it automatically.) You can change the device on which the recovery unit journals are created by using either the DEVICE or LABEL keyword. Use the DEVICE keyword to specify the location of recovery unit journals using a device name or a logical name. Use the LABEL keyword to specify the location of recovery unit journals using a volume label. You can only use one of these two keywords (LABEL or DEVICE) to specify the recovery unit journal location. In either case, only the volume label is actually stored with the file. At run time, RMS attempts to translate the logical name DISK$volume_label when creating a recovery unit journal. This is the default logical name created by the Mount Utility when you mount the disk using the /SYSTEM or /CLUSTER qualifier. If you do not mount the disk using the /SYSTEM or /CLUSTER qualifier, you must define the logical name DISK$volume_label using the DEFINE command with the /SYSTEM and /EXECUTIVE_MODE qualifiers. You must have the SYSNAM (system logical name) or the SYSPRV (system privilege) privilege to use the /SYSTEM qualifier. NOTE The logical name DISK$volume_label can point to any disk device on the system that is mounted and has for its volume label an executive-mode logical name in the form DISK$volume_label with the concealed and terminal attributes. data-filespec[,...] Specifies the file that is to be marked for recovery unit journaling. If a data file has been marked for recovery unit journaling with this command, DECdtm transaction services ($START_TRANS, $END_TRANS, and $ABORT_TRANS) must be used by an application program to define transactions whenever data in this file is modified. If you specify more than one file, separate the file specifications with commas. The asterisk (*) and the percent sign (%) wildcard characters are allowed. The file specification cannot include a node name, since the SET FILE command is not valid for network access.
8.2 – Description
The SET FILE/RU_JOURNAL command marks an RMS file for recovery unit journaling. To use recovery unit journaling for a data file, a data file must be marked for recovery unit journaling with the SET FILE/RU_JOURNAL command, and transactions must be defined in an application program using DECdtm transaction services. You can also use this command to specify the default volume on which recovery unit journals will be created for this file. Use the SET FILE/NORU_JOURNAL command to unmark a file for recovery unit journaling. After you use the SET FILE/NORU_JOURNAL command for a file, modifications to that data file will no longer be written to a recovery unit journal. If you wish to delete a file that has been marked for recovery unit journaling, you must use the SET FILE/NORU_JOURNAL command before you can delete the file. There is no reason other than performance to keep recovery unit journals on a different volume from the file being journaled. Unlike after-image journaling, which protects against a system failure such as a head crash that causes a loss of data, recovery unit journaling ensures that a predefined set of operations are either done in their entirety, or not done at all. In the event of an abnormal termination of the application, such as a system crash or a Ctrl/Y, any incomplete transactions are automatically rolled back (undone). Because all recovery unit journals must be available before the data files can be rolled back, locating recovery unit journals on a volume where availability might be low could reduce the availability of the data files that use those recovery unit journals. Specifying a location for recovery unit journals for a file does not guarantee that the recovery unit journals will always be located on the named device or volume. For any active transaction, there is always only one recovery unit journal for local files. Thus, if many files are involved in a transaction, a single recovery unit journal is used, even if different locations for the journals had been specified (for individual files) with different SET FILE/RU_JOURNAL commands. Remote files are an exception to this rule. Each remote file associated with a transaction has its own recovery unit and recovery unit journal. The recovery unit journal resides on the remote system. The volume is chosen in the same way as for local files. Remote files have no effect in determining where the local recovery unit journal resides. A journal is not deleted when the transaction has been completed. Recovery unit journals are automatically deleted only when all of the files involved in the transaction are closed and the application exits. RMS journaling automatically creates a recovery unit journal at run time, whenever the first record stream associates with a transaction. All record streams in the process associated with the same transaction share a single recovery unit journal. Once a recovery unit journal is created, it can be reused for another transaction by the process that created it. A recovery unit journal is created only when there is no available recovery unit journal opened by the process for the current transaction.
8.3 – Examples
1.$ SET FILE/RU_JOURNAL FINANCE_DISK:[PAYROLL]WEEKLY.DAT This command marks the file WEEKLY.DAT for recovery unit journaling. Any operation within an application that modifies this file must be in a defined transaction (defined by DECdtm transaction services). 2.$ SET FILE/AI_JOURNAL=(FILE=JNL_DISK:, CREATE)- _$ /RU_JOURNAL/LOG OVERDUE.DAT %SET-I-JCREATED, journal JNL_DISK:[PAYABLE]OVERDUE.RMS$JOURNAL;1 created %SET-I-FILMARKAI, WORK_DISK:[PAYABLE]OVERDUE.DAT;1 marked for RMS after-image journaling -SET-I-JFILE, using journal JNL_DISK:[PAYABLE]OVERDUE.RMS$JOURNAL;1 %SET-I-FILMARKRU, WORK_DISK:[PAYABLE]OVERDUE.DAT;1 marked for RMS recovery-unit journaling %SET-I-MODIFIED, WORK_DISK:[PAYABLE]OVERDUE.DAT;1 modified $ SET FILE/AI_JOURNAL=(FILE=JNL_DISK:OVERDUE)- _$ /RU_JOURNAL/LOG CURRENT.DAT %SET-I-FILMARKAI, WORK_DISK:[PAYABLE]CURRENT.DAT;1 marked for RMS after-image journaling -SET-I-JFILE, using journal JNL_DISK:[PAYABLE]OVERDUE.RMS$JOURNAL;1 %SET-I-FILMARKRU, WORK_DISK:[PAYABLE]CURRENT.DAT;1 marked for RMS recovery-unit journaling %SET-I-MODIFIED, WORK_DISK:[PAYABLE]CURRENT.DAT;1 modified In this example, the files OVERDUE.DAT and CURRENT.DAT are marked for after-image and recovery unit journaling using two SET FILE commands. In this example, a single journal (JNL_ DISK:[PAYABLE]OVERDUE.RMS$JOURNAL) is used for after-image journaling. The first SET FILE command uses the /CREATE qualifier to create a new after-image journal, JNL_ DISK:[PAYABLE]OVERDUE.RMS$JOURNAL, for the file OVERDUE.DAT. The file specification uses the current default directory [PAYABLE] and the default file extension RMS$JOURNAL. The second SET FILE command marks the file CURRENT.DAT for after-image and recovery unit journaling, checks the disk JNL_ DISK to see whether an after-image journal already exists, and uses the existing journal JNL_DISK:[PAYABLE]OVERDUE.RMS$JOURNAL for the file CURRENT.DAT.