=;The OpenVMS Frequently Asked Questions (FAQ)D

The OpenVMS Frequently Asked Questions (FAQ)



 r \ ^  
PreviousContentsIndex

W

8.6 What does the MCR command do?



GThe MCR is an artifact of RSX compatibility mode, the operating system Efrom which OpenVMS is descended. MCR is the Monitor Console Routine, ?and the command is intended to activate RSX compatibility mode Futilities. When used on OpenVMS, the command is most commonly used to Hrun the specified image and---because the tool detects the image is not Ga compatibility-mode image---it acts as a form of RUN command with the >default file specification of SYS$SYSTEM:.EXE. MCR passes any D(optional) command line arguments in a fashion similar to a foreign command. In other words:

 

"
$ MCR FOO BAR 




is equivalent to:

 

"
 $ FOO :== $FOO  $ FOO BAR 




@MCR is not documented. Use of a foreign command or the DCL$PATH `mechanism is preferred. For details on this, see Section 8.2.d

8.7 How do I change the OpenVMS system prompt?



EYou can use the SET PROMPT command for this purpose. SET PROMPT sets 'the DCL prompt to the specified string.

@When you want to display variable information, you will need to Cestablish a tie-in that provides the information to the SET PROMPT command as required.

DIf you wish to display the default directory for instance, you will Dhave to establish a tie between the SET DEFAULT command and the SET HPROMPT commands, as there is no direct way to get the default directory Aas the DCL prompt. You can easily acquire or create a set of DCL Hcommand procedures that perform the SET DEFAULT and SET PROMPT for you. 9These DCL command procedures often use a command such as:

 

"
($ set prompt='f$environment("default")' 




>More advanced users could implement a system service or other Eintercept, and use these tools to intercept the directory change and Breset the prompt accordingly. (This approach likely involves some >kernel-mode programming, and requires write access to various &undocumented OpenVMS data structures.)

FThere are related tools available from various sources, including the following web sites:

n

8.8 Can I do DECnet task-to-task communication with DCL?



Yes, you can do this with DCL.

EThe OpenVMS DECnet documentation shows various simple examples using Gthe task object and the TYPE command to trigger the execution of a DCL Ecommand procedure on a remote node. An example DCL command procedure Fthat is rather more advanced than using the TYPE command as a trigger 'is included in the Ask The Wizard area:



HFor additional information on the OpenVMS Ask The Wizard (ATW) area and Bfor a pointer to the available ATW Wizard.zip archive, please see 0Section 3.8.

DDCL does not include support asynchronous I/O, thus a predetermined Cprotocol or a predetermined "turn-around" command sequence must be Dimplemented in order to avoid protocol deadlocks---cases where both Etasks are trying to write or both tasks are trying to read. The task Gthat is writing messages to the network must write (or write and read) Fa predetermined sequence of messages, or it must write a message that Ftells the reader that it can now start writing messages. (This is the 8essence of a basic half-duplex network protocol scheme.)h

8.9 How can I get the width setting of a terminal?



 

"
)$ width = f$getdvi(terminal,"DEVBUFSIZ") 


f

8.10 Why doesn't DCL symbol substitution work?



FThe DCL symbol substitution processing occurs only at the DCL prompt, Dnot within data and not within files. If you wish to perform symbol Csubstitution in this environment, you typically write a small file Hcontaining the command(s) and data to be invoked---potentially only the Bdata---and you then invoke the created procedure or reference the specified data.

DIn this case, use of a file containing nolinemode commands or other Ctechniques might be useful---you will want to ensure that the text Geditor you use does not attempt to use screen mode or similar, as this Dis not generally considered adventageous within a command procedure.

.Tools such as FTP have alternatives: COPY/FTP.

FDCL symbol substitution occurs in two passes, using the ampersand and Fthe apostrophe. In most cases, only the apostrophe is necessary. In a Hfew cases---such as the DCL PIPE command---you will may need to use the Fampersand to get the substitution to work. The following example uses Eampersand substitution to transfer the contents of the header into a logical name:

 

"
I$ PIPE CC/VERSION | (READ SYS$PIPE hdr ; DEFINE/JOB/NOLOG hdr &hdr ) 




GA logical name (in the job logical name table; shared by all processes Hin the current job) was used as DCL symbols cannot be returned back out ,from a DCL PIPE or other spawned subprocess.

ˆFor related materials, please see Section 8.1 and Section 8.11.c

8.11 How can I substitute symbols in a PIPE?



@Use DCL ampersand substitution, and not apostrophe substitution.

 

"
D$ pipe show system | search sys$input opcom | (read sys$input pid ; A    pid=f$element(0," ",pid) ; define/system opcom_pid &pid) $ show log opcom_pid 0    "OPCOM_PID" = "0000020B" (LNM$SYSTEM_TABLE) 


k

8.12 Use of RUN/DETACH, LOGINOUT, and logical names?



4With a command to create a detached process such as:

 

"
9$ RUN/DETACHED SYS$SYSTEM:LOGINOUT /INPUT=TEMP_INPUT.COM 




BIf you are trying to use a logical name as the /INPUT, /OUTPUT or D/ERROR on a RUN/DETACH command, then you must translate the logical Gname specifications to physical references before passing them, or the Gdefinitions must reside in a logical name table that is visible to the newly-created process.

FAlso note that LOGINOUT only creates the SYS$LOGIN, SYS$LOGIN_DEVICE, and SYS$SCRATCHJ logical names if it is processing a login that is based on the contents G of a SYSUAF record---without access to the associated SYSUAF record, E this information is not available to LOGINOUT. (If you want to see B these particular logical names created, then please specify the 4 /AUTHORIZE qualifier on the RUN/DETACHED command.)

GIf you do not specify LOGINOUT as the image, then there is no easy way Eto get these logical names. Also, any logical names that are used in Cthe target image file specification must also be in a logical name Etable accessible (by default) by the newly-created detached process. CShared tables include the group (if the process is in the same UIC Hgroup) and the system table. (If the target process is to be in another EUIC group, a suitablly privileged user or application can create the Cnecessary logical name(s) directly in the other group logical name table.)

HWhen in doubt, create a short DCL command file as input, and use a SHOW GLOGICAL and similar commands to examine the context. (And use physical Bdevice and directory references on the RUN/DETACH of the LOGINOUT Fimage, when specifying this command file as /INPUT.) Also remember to Hcheck both security auditing and system accounting when troubleshooting problems with the RUN/DETACH.

8Also see Section 8.2.l

8.13 How to use escape and control characters in DCL?



4To write a message and then the bell character, use:

 

"
$ bell[0,7] = 7 "$ write sys$output "Hello''bell'" 




To write blinking text, use:

 

"
$ esc[0,7] = 27 $ text = "Blinking Text" .$ write sys$output "''esc'[5m''text'''esc'[m" 




uAlso see sections Section 11.6, Section 12.1.


3

Chapter 9
Files


A

If you are searching for something here, please (consider using the text-format FAQ.

U

9.1 How can I undelete a file?



GOpenVMS doesn't have an "undelete" function. However, if you Hare quick to write-protect the disk or if you can guarantee that no new Hfiles get created or existing files extended, your data is still on the Gdisk and it may be possible to retrieve it. The FLORIAN tool available Efrom various websites can potentially recover the file, see question gSection 13.1 for pointers. Other alternatives here include the DFU <tool, available on the OpenVMS Freeware CD-ROM distribution.

HIf you are setting up a user environment for yourself or for others, it Bis quite easy to use DCL to intercept the DELETE command, using a symbol:

 

"
&$ DEL*ETE :== @SYS$LOGIN:MYDELETE.COM 




FThe DELETE symbol will cause the procedure to be invoked whenever the Auser enters the DELETE command, and it can copy the file(s) to a D"trashcan" subdirectory before issuing a "real" HDELETE on the files. Other procedures can retrieve the file(s) from the F"trashcan" subdirectory, and can (and should) clean out the F"trashcan" as appropriate. (Realize that this DELETE symbol Acan interfere with DELETE/GLOBAL and other similar DCL commands.)u

9.2 Why does SHOW QUOTA give a different answer than DIR/SIZE?



HDIRECTORY/SIZE doesn't take into account the size of file headers which Hare charged to your quota. Also, unless you use DIRECTORY/SIZE:ALL, you Gwill see only the "used" size of the file, not the allocated Gsize which is what gets charged against your quota. Also, you may have files in other directories.

 

"
)$ DIRECTORY/SIZE=ALL/GRAND [username...] 7Grand total of D1 directories, F1 files, B1/B2 blocks. +$ DIRECTORY/SIZZ=ALL/GRAND [-]username.DIR 2Grand total of 1 directory, 1 file, B3/B4 blocks. 
$ SHOW QUOTA 1User [username] has B5 blocks used, B6 available >of B7 authorized and permitted overdraft of B8 blocks on disk 




GIf the user has no files in other directories and all file-headers are .only 1 block, then the following should apply:

 

"
  B5=B2+B4+F1+1 




>If the diskquota has drifted out of synchronization, then the Gsystem-manager can force a quota rebuild---due to various factors, the Fquota file can potentially drift from the actual use over time, and a ;periodic rebuild can be performed at appropriate intervals.

GAlso be aware that the DIRECTORY/SIZE command can report larger values Dthan might otherwise be expected when used to evaluate files and/or Gdirectories that are alias links---such as the system roots on OpenVMS Fsystem disks---as the command reports a total that is cumulative over Dall of the files and directories examined, without regard for which Bones might be alias entries and which are not. (In other words, a CDIRECTORY/SIZE of an entire OpenVMS system disk will report a disk Guseage value larger than the (usually more accurate) value reported by Gthe SHOW DEVICE command. This as a result of the alias entries linking >each SYS$SYSDEVICE:[SYSCOMMON]SYS*.DIR directory file and the 4SYS$SYSDEVICE:[000000]VMS$COMMON.DIR file together.)u

9.3 How do I make sure that my data is safely written to disk?



FIf your application must absolutely guarantee that data is available, Dno matter what, there's really no substitute for RMS Journaling and Ehost- or controller-based shadowing. However, you can achieve a good Gdegree of data integrity by issuing a SYS$FLUSH RMS call at appropriateCtimes (if you're using RMS, that is.) If you're using a high-level Elanguage's I/O system, check that language's documentation to see if Fyou can access the RMS control blocks for the open file. In C you can use fflush followed by fsync.

@For details on disk bad block handling on MSCP and on SCSI disk 6devices, please see Ask The Wizard (ATW) topic (6926).



HFor additional information on the OpenVMS Ask The Wizard (ATW) area and Bfor a pointer to the available ATW Wizard.zip archive, please see 0Section 3.8.v

9.4 What are the limits on file specifications and directories?



EA file specification has an aggregate maximum size of 255 characters (NAM$C_MAXRSS) at present, assuming ODS-29limits and traditional DCL process parsing settings (SET PROCESS/PARSE_STYLE).>The node and device specification may be up to 255 characters Feach---file name and file types may be up to 39 characters each. File Aversions are from 1 through 32767, though 0 (latest version), -0 D(oldest version) and -n (n'th previous version) can be used in most Hcontexts. A file specification may not have more than 8 directories and Csubdirectories or---with a rooted directory, two sets of eight are Hpossible---and while it is possible to create subdirectories of greater Bdepth, accessing them under ODS-2 is somewhat problematic in most "cases, and thus should be avoided.

Under ODS-55 with extended DCL parsing (SET PROCESS/PARSE_STYLE),? the filename length limits are up around 4,095 (NAML$C_MAXRSS); characters, and directories can be around 255 levels deep.

HApplication developers should use OpenVMS-supplied routines for parsing Efile specifications - this ensures that changes in what is allowable Hwill not tend to break your application. Consider that various parts of Gthe file specification may contain quoted strings with embedded spaces Cand other punctuation! Some routines of interest are SYS$FILESCAN, BSYS$PARSE and LIB$TRIM_FILESPEC. For further information, see the #OpenVMS Guide to File Applications.

FPerformance of larger directory files improves (greatly) with OpenVMS HV7.2 and later---operations on directory files of 128 blocks and larger Gwere rather slower on earlier OpenVMS releases due to the smaller size Eof the directory cache and due to the directory I/O processing logic.

FFor fastest directory deletions, consider a reverse deletion---delete Gfrom the last file in the directory to the first. This reversal speeds Hthe deletion operation by avoiding unnecessary directory I/O operations Eas the files are deleted. Tools such as the Freeware DFU can be used for this purpose,?as can various available reverse-DELETE DCL command procedures.

AAlso see Section 5.44.s

9.5 What is the largest disk volume size OpenVMS can access?



GOne Terabyte (TB; 2**31 blocks of 2**9 bytes; 0x07FFFFFFF blocks). 255 Hvolumes in a volume set. The largest contiguous allocation possible for *any particular file is 0x03FFFFFFF blocks.

EPrior to the release of V6.0, the OpenVMS file system was limited to @disk volumes of 8.38 GB (2**24 blocks, 16777216 blocks) or less.

DOn some systems, there are restrictions in the console program that Hlimit the size of the OpenVMS system disk. Note that data disks are not Daffected by console program limits. For example, all members of the VAXstation 3100Cseries are limited to a system disk to 1.073 GB or less due to the Fconsole, though larger data disks are possible. This limit due to the HSCSI drivers used by and built into the console ROM to read the OpenVMS Dbootstrap files, and these same drivers are also used by OpenVMS to write the system crashdump.

>There are numerous discussions of this VAXstation 3100 in the Fcomp.os.vms newsgroup archives. Please use Google newsgroup search to @search the archives for further details, for discussions of the Bworkarounds, and for details of the potential for a simple failed Gbootstrap and particularly for discussions of the potential for severe #system disk corruptions on crashes.

ESome SCSI disks with capacities larger than 8.58 gigabytes (GB) will Grequire the use of an OpenVMS ECO kit (eg: ALPSCSI04_062 or later; see lSection 14.25 for details) for new SCSI device drivers. Failure to use =this ECO can cause "rounding errors" on the SCSI disk device Ecapacity---OpenVMS will not use nor display the full capacity of the Cdrive---and "%sysinit-e-error mounting system device status equals G000008C4" (8C4 -> "%SYSTEM-?-FILESTRUCT, unsupported file structure Hlevel") errors during bootstrap. (One workaround for the bootstrap when 6the bitmap is located far into the disk is the use of GINIT/INDEX=BEGIN.) The problem here involves the particular extensions :and fields used for larger capacity disks within the SCSI =specifications and within the various intepretations of same.

For ATA (IDE) disk drives:



gSee Section 14.4.4.2 for additional ATA SYS$DQDRIVER information.

CBe aware that a known restriction in certain older versions of the EAlpha SRM Console prevents booting most ATA (IDE) drives larger than F8.455 GB, depending on exactly where the various files are located on Dthe volume. Updated SRM consoles for systems with SRM and ATA (IDE) @drive support are (will be) available. (OpenVMS Engineering has Esuccessfully bootstrapped 20GB ATA (IDE) disks using the appropriate SRM console version.)



/  
Note

EAll disk-related listed in this section are stated in units of "disk G(base ten) gigabytes" (1 GB = 10^9 bytes) and not in units of B"software (base two) gigabytes" (1 GB = 2^30; 1 GB = 1073741824.) lbytes. Please see Section 14.25 for details of the nomenclature and of the units.


CBe aware that larger disks that are using an extension of SCSI-2---Fdisks that are using a mode page field that the SCSI-2 specifications Dnormally reserved for tape devices---to permit a larger disk volume Gsize will require a SCSI driver update for OpenVMS, and this change is Dpart of V7.1-2 and later, and also part of ALPSCSI07_062 and later. F(These larger disks disks will typically report a DRVERR, or will see Hthe volume size "rounded down".) SCSI disks larger than 16777216 blocks Fcira 8.455 GB (base ten); 8GB (base two) require this ECO, or require )the use of OpenVMS Alpha V7.1-2 or later.

HApplications written in C can be limited to file sizes of two gigabytes Band less, as a result of the use of longword values within C file Boperations, and specifically off_t. This restriction is lifted in EOpenVMS V7.3-1 and later, and with the application of the C ECO kits Cavailable for specific earlier releases. The use of a longword for Eoff_t restricts applications using native C I/O to file sizes of two Dgigabytes or less, or these applications must use native RMS or XQP calls for specific operations.

nAlso see Section 14.13, Section 14.25.x

9.6 What is the maximum file size, and the RMS record size limit?



ERMS can store individual files of a size up to the maximum supported Gvolume size. Under OpenVMS V6.0 and later, the volume size and the RMS Cmaximum file size limit is 2**31 * 512 bytes---one terabyte (1 TB).

C"Use a volume set to provide a large, homogeneous public file Hspace. You must use a volume set to create files that are larger than a Fsingle physical disk volume. (The file system attempts to balance the Cload on the volume sets, for example, by creating new files on the 1volume that is the least full at the time.)"

E"You can add volumes to an existing volume set at any time. The 7maximum number of volumes in a volume set is 255."

EThe RMS formats---sequential, relative, and indexed---are limited by Ethe one terabyte maximum volume size. RMS relative files are further Dlimited to a number of records that will fit in 32 bits---4 billion Crecords. Sequential and indexed formats do not have a record limit.

qAlso see Section 2.17.1, Section 14.25.p

9.7 How do I write CD-Recordable or DVD media on OpenVMS?



DHow to create CD-R, CD-RW, DVD-R, DVD+R, DVD-RW, or DVD+RW media on OpenVMS?

FFor information on CD and DVD optical media drives on OpenVMS, please osee Section 14.29. For information on the creation of OpenVMS media and Fof OpenVMS bootable media, a full step-by-step sequence is documented Fin the OpenVMS Ask The Wizard topic (9820). An abbreviated version of the sequence is included here.

HRecording (writing) of CD and DVD optical media requires a recording or =media mastering application or tool, and both commercial and Hnon-commercial options are available. Please see CDRECORD (both non-DVD Gand DVD versions are available, and at least one commercial version is Bavailable), and also see DVDwrite (commercial) or DVDRECORD (open Csource). A port of CDRECORD is present in OpenVMS V7.3-1 and later.



FAlternatively, consider the following command on OpenVMS Alpha V7.3-1 and later:

 

"
@SYS$MANAGER:CDRECORD.COM HELP 




EWhile folks have had success getting PC-based CD-R/RW or DVD-R/RW or EDVD+R/RW tools to work with OpenVMS partitions, it is far easier and Cmore reliable to use the OpenVMS-based versions of these tools and Edirectly-attached devices. If you use a Windows-based tool, you will Dwant to specifically select its raw mode, image mode, or block-copy Cmode, depending on the terminology within the particular tool. The Gtransfer mode and selections is variously refered to as a disk-at-once E(DAO) 2048-byte block ISO Mode 1 raw/image/block data disk recording mode.

FMore details: Creation of CD recordable or DVD recordable media under AOpenVMS typically involves one of two approaches: the use of the optional CD-R (`Scribe')Gcapabilities available for the InfoServer or other "offline" Ghardware packages (PC-based packages will be included in this), or the Euse of a host-based package such as the CDRECORD or CDWRITE13_VMS or Eother utilities, including OpenVMS ports of common open-source tools Bmade available by Dr. Eberhard Heuser-Hofmann and various others. 3Commercial packages and options are also available.Dr. Heuser-Hofmann has DVDwrite=, a commercial package which can record DVD media. ( 




 r Y \ ^  
PreviousNextContentsIndex