HP 3000 Manuals

MPE XL User Interface (Scheduling) Enhancements [ COMMUNICATOR 3000/XL XL RELEASE 2.1 ] MPE/iX Communicators


COMMUNICATOR 3000/XL XL RELEASE 2.1

MPE XL User Interface (Scheduling) Enhancements 

by Jeff Vance/Scott Cressler/Steve Elmer/Tom Shem 
Commercial Systems Division 

The MPE XL User Interface has been improved for Release 2.1.  There are
new and modified commands, new predefined HP variables, enhanced command
file and UDC parameter handling, improvements to the FINFO evaluator
function, and generalized I/O redirection available on most MPE commands.
These enhancements are described below, except for I/O redirection which
is featured in a separate Communicator paper.  The MPE XL Commands 
Reference Manual (P/N 32650-60002) should be consulted for further
details.

NEW COMMANDS 

MPE XL Release 2.1 contains several new and modified commands.  The
enhancements to support the Native Mode Spooler and Native Mode KSAM are
described elsewhere in this Communicator.  The new 2.1 commands, covered
below, include:  :ALTPROC, :ERRCLEAR, :ESCAPE, :LISTFILE and :SHOWPROC.
Commands which have been modified are:  :SHOWQ and :TUNE.

Altproc Command 

The new :ALTPROC command changes characteristics for one or more
process(es), and requires OP or SM capability.

Syntax 
___________________________________________________________
|                                                         |
|     ALTPROC [[PIN=] pinspec | ( pinspec [, pinspec]...)]|
|             [[JOB=] jobspec | ( jobspec [, jobspec]...)]|
|             [[;PRI=] pri]                               |
|             [;TREE | ;NOTREE]                           |
|             [;USER | ;ANYUSER]                          |
|             [;SYSTEM]                                   |
___________________________________________________________

A process can be identified by its Process Identification Number (pin),
job number or user.account.  Additionally, children processes may be
automatically altered via the TREE option.  Altering system processes
requires SM capability as well as specification of the SYSTEM option.
Either the PIN= or the JOB= parameter is required.  Both parameters may
be specified.

Parameters 

PIN              A pinspec or a list of pinspecs enclosed in parentheses.
                 If more than one pinspec is used parentheses are
                 required.

pinspec          A pin number which may be preceded by a "#P".  If
                 pinspec is 0 then the caller's pin is used.

                 If the target pinspec is a system process then SM
                 capability is required.  Also, the SYSTEM option must be
                 supplied to prevent system processes from accidentally
                 being altered.

                 NOTREE is the default for all pinspec target processes,
                 and can be overridden via the TREE option.

                 The USER and ANYUSER options do not apply to pinspec.

                 pinspec is optional as long as JOB= is supplied.  If
                 both are omitted an error is reported.

JOB              A jobspec or a list of jobspecs enclosed in parentheses.
                 If more than one jobspec is used parentheses are
                 required.

jobspec          The name of the job or session who's processes are to be
                 altered.  jobspec can be any of the following:
                 jobnumber, username, @S, @J, @.

                 The jobnumber must be in the form #Jnnn | #Snnn.

                 The username must be in the form user[.account].  If
                 there is more than one job/session matching the same
                 username they will all be altered.

                 Wildcards have the following meanings:

                      @S - all sessions,
                      @J - all jobs,
                      @  - all sessions and jobs.

                 The USER and ANYUSER options apply only if jobspec is
                 wildcarded.  The USER option causes only processes
                 matching the user's name to be altered, while the
                 ANYUSER option allows all processes matching the
                 wildcarded jobspec to be altered.  For example, if the
                 user's name is steve.ui and the command entered is
                 :ALTPROC job=@j;pri=cs, only job processes logged on as
                 steve.ui will be altered.  However, if the command is
                 :ALTPROC job=@j;pri=cs;anyuser, then all job processes
                 will be altered.

                 TREE is the default for all jobspec target processes,
                 and can be overridden via the NOTREE option.

                 The SYSTEM option is ignored for all jobspec target
                 processes.

                 jobspec is optional as long as pinspec is supplied.  If
                 both are omitted an error is reported.

pri              The execution priority for the process.  If omitted the
                 priority is unchanged.  For OP users pri may be one of
                 the following:

                 BS | CS | DS | ES

                 For users with SM capability pri may additionally
                 include:

                 BM | CM | DM | EM (queue manager) or

                 a number in the range of 100 to 255.

                 pri may not exceed the user's MAXPRI value, unless the
                 user has SM capability.


CAUTION Misuse of PRI can significantly degrade system operating efficiency.
TREE An option that causes each process specified, as well as all its descendants, to be altered. TREE is the default for all jobspec target processes. If both TREE and SYSTEM are specified a warning is reported indicating that TREE will be ignored. NOTREE An option that causes only the processes specified to be altered. Descendant processes will not be altered. NOTREE is the default for all pinspec target processes. SYSTEM An option that is necessary if the target process from pinspec is a system process. SM capability is required. SYSTEM is ignored for all jobspec processes. If both SYSTEM and TREE are specified a warning is issued indicating that TREE will be ignored.
CAUTION Exercise extreme care when altering system processes since operating system efficiency may significantly degrade.
USER An option that applies only when jobspec is wildcarded. It causes only jobspec target processes matching the user's name to be altered. USER is the default. ANYUSER An option that applies only when jobspec is wildcarded. It causes all jobspec target processes to be altered, regardless of their owners. Example :ALTPROC 42; pri=cm { Alter pin 42 to the CM subqueue (requires SM) } :ALTPROC 0; pri=ds { Alter current process's pri to the DS subqueue} :ALTPROC job=mgr.payroll;& { Alter all processes logged on as mgr.payroll } pri=155 { to linear 155 (requires SM capability) } :ALTPROC 6; system; & { Alter system process 6 to linear 100 } pri=100 { (requires SM capability) } :ALTPROC #p133; tree; & { Alter process 133 and all its descendants to } pri=cs { the CS subqueue } :ALTPROC (150,#p247,211);& { Alter pins 150, 247, 211 to the ES subqueue } pri=es :ALTPROC job=(#j2,me.ap);& { Alter all processes belonging to job 2 or } pri=ds; anyuser { logged on as me.ap to the DS subqueue } :ALTPROC job=@j ;pri=cs; & { Alter all job processes matching the user's } user { name to the CS subqueue } :ALTPROC job=@j ;pri=cs; & { Alter all job processes to the CS subqueue } anyuser Errclear Command The new :ERRCLEAR command zeros all error related HP variables. _____________________________________ | | | ERRCLEAR | _____________________________________ The :ERRCLEAR command zeros the following variables: CIERROR, HPCIERR (new), HPCIERRCOL (new), HPFSERR (new). :ERRCLEAR is equivalent to the following commands: :setvar cierror 0 :setvar hpcierr 0 :setvar hpcierrcol 0 :setvar hpfserr 0 Often :ERRCLEAR may be used in place of :setjcw cierror 0. The new variables are discussed later in this article. See also the new :ESCAPE command. Example :ERRCLEAR and :ESCAPE example: ERRCLEAR continue run database if hpcierr < 0 then echo Database warning ![abs(hpfserr)] detected, proceeding... elseif hpcierr > 0 then echo FATAL database error !hpcierr detected, halting... ESCAPE else... Escape Command The new :ESCAPE command causes the CI to exit from all user command levels as if a command error was detected. Syntax _____________________________________ | | | ESCAPE [[CIERR=] errnum] | _____________________________________ :ESCAPE, in conjunction with the :ERRCLEAR command and the new predefined HPCIERR, HPCIERRCOL and HPFSERR variables, allows the CI programmer to simulate all aspects of CI error handling. Now a warning can be easily distinguished from an error, the caret (^) can be positioned under the offending parameter, and file system errors can be captured. Also jobs can now be easily aborted via :ESCAPE without worrying about user command nesting levels. The :ESCAPE command causes control to leave all user commands (regardless of nesting levels) and return to the CI. This means that batch jobs will flush (terminate), and sessions will issue the prompt. :ESCAPE works differently than :RETURN, which only exits one user command level and has no effect when entered directly from the CI (in a job or a session). :CONTINUE operates as if a normal error occurred: it protects the command immediately following it, and if that command is a user command the entire user command is considered protected by an active :CONTINUE. :ESCAPE causes control to return to the command following the command after the active :CONTINUE. Thus, a :CONTINUE can "trap" an :ESCAPE. If no :CONTINUE is active then :ESCAPE causes the CI to act as it would for any error: for sessions the user command environment is cleared and the prompt is displayed; jobs are flushed. Parameters errnum If errnum is specified then CIERROR is set to the absolute value of errnum, and HPCIERR is set to errnum (and thus can be negative, allowing warnings to be distinguished from errors). Refer to the :ERRCLEAR example for an illustration of :ESCAPE. Listfile Command The new :LISTFILE command lists file information. It can be used instead of the :LISTF and :LISTFTEMP commands. Syntax _______________________________________________________________ | | | LISTFILE [[FILES=] [fileset] | ( fileset [,fileset]...)]| | [[;FORMAT=] format_opt] | | [[;SELEQ=] select_eq] | | [;PASS] | | [;PERM | TEMP | PERMTEMP] | _______________________________________________________________ The :LISTFILE command is used to list file information. :LISTFILE is a functional superset of the :LISTF and :LISTFTEMP commands. Any user may list any level of information on any file on the system. The PASS option is available to the creator of the file, to the Account Manager (AM capability) if the file resides in the logon account, and to the System Manager (SM capability). A file will not be listed unless the file's home volume set is mounted. Parameters fileset Specifies the set of files to be listed. More than one file may be listed via wildcarding or by enclosing several file names within parentheses. For example, myfile, my@, (myfile, hisfile, hertext), (my@, h[ei][sr]@), x#[0-5][c-f]@x are all valid filesets. The bracket wildcarding is the same as for the :SHOWVAR command. If omitted, the default fileset is '@'. format_opt A format selection. This parameter has no effect on the files selected for display. The following numbers/mnemonics will be recognized: -1 | LABEL Show only the file label in hex. 0 | FILES Show only the file name. 1 | SUMMARY Show LISTF,1 data. 2 | DISC Show LISTF,2 data. 3 | DETAIL Show LISTF,3 data. 4 | SECURITY Show LISTF,4 data. 5 | DATA Show LISTF,3 data and all file specific data in LISTF,3 type format (i.e. KSAM and SPOOL). 6 | QUALIFY Show only fully qualified file name. 7 | UNIQUE Show unique file attributes, e.g. KSAM key information or spool device for NM spool files. Format options 5 and 7 are "data driven" outputs that will show file specific information such as KSAM keys, or SPOOLER device. When option 5 is used and a file has no unique data, then only the :LISTF,3 data will be shown. When option 7 is used and a file has no unique data, then only the file name is displayed. The default format is FILES (0). select_eq The selection equation is used as a filter on the fileset. From the set of files matching the fileset, only files which match the filter requirements will be listed. Currently, only the file type (FTYPE) field may be specified, and the only recognized operator is equality (=). Selection equations have the following format: <select_eq> ::= [ FTYPE = mnemonic ] Selection equations must be surrounded by square brackets. For Release 2.1 the only mnemonics supported are KSAMXL and SPOOL. PASS An option that is used to see sensitive data. The use of this option depends on the user's access rights to the data. PERM An option that is used to display permanent files only. This is the default. TEMP An option that is used to display temporary files only. PERMTEMP An option that is used to display both permanent and temporary files. Temporary files will be listed after the permanent files. SAMPLE OUTPUT :LISTFILE ksamfmt, unique ******************** FILE: KSAMFMT.KSAM.DEV KEY KEYTYPE KEYLOC KEYSIZE DUP 1 BYTE 1 5 RDUP 2 INT 10 2 DUP 4 REAL 6 4 RDUP 5 PACK 12 7 DUP 6 *PACK 19 10 DUP 7 NUM 38 5 RDUP 8 IEEEREAL 34 4 DUP 9 BYTE 43 7 RDUP 10 PACK 29 5 DUP TOTAL KSAM KEYS : 10 FIRST KSAM RECORD : 1 LANGUAGE : ENGLISH REUSE RECORDS : YES :LISTFILE splrfmt; format=unique ******************** FILE: SPLRFMT.SPLR.DEV SPOOL DEV : 6 Example :LISTFILE ,disc { lists '@' files with DISC (2) format } :LISTFILE x@,detail;pass >outfile { writes all files starting with 'X' } { in DETAIL format with lockwords to } { outfile } :LISTFILE (@[xy],my@,foo,bar), & { lists all files ending in 'X' or 'Y',} data,[ftype=ksamxl] { or beginning with 'MY', plus the } { file FOO and BAR that are also } { KSAMXL files } :LISTFILE [a-c]#[x-z]@,3; & { appends all files starting with 'A', } seleq=[ftype=spool] >>outfile { 'B','C', followed by any number, } { followed by an 'X', 'Y' or 'Z', that } { are spool files to outfile } Showproc Command The new :SHOWPROC command displays information for one or more processes. Syntax ____________________________________________________________ | | | SHOWPROC [[PIN=] pinspec | ( pinspec [, pinspec]...)]| | [[JOB=] jobspec | ( jobspec [, jobspec]...)]| | [[;FORMAT=] format] | | [;TREE | ;NOTREE] | | [;USER | ;ANYUSER] | | [;SYSTEM] | ____________________________________________________________ A process can be identified by its Process Identification Number (pin), job number or user.account. Additionally, children processes may be automatically shown via the TREE option. By default, all processes for the user's current job or session are shown. Users with SM or OP capability may see information for processes belonging to other users. SM users may also display system processes via the SYSTEM option. If both the PIN= and JOB= parameters are specified then the information for the list of pins will precede the information for the list of jobs. Duplicate specifications are not detected. SUMMARY is the only format currently supplied and is the default. Except as noted below, all parameters and defaults are the same as for the :ALTPROC command. Parameters pinspec SM or OP capability is required to display other user's processes. pinspec is optional and has no default (see jobspec). jobspec SM or OP capability is required to display other user's processes. jobspec is optional and defaults to the user's current job id (e.g., #!hpjobtype!hpjobnum). An ordinary user can only see their own processes, even when jobspec is wildcarded. For example, if the user name is jeff.mfg and the command is :SHOWPROC job=@j, only processes for jobs logged on as jeff.mfg will be displayed. On the other hand, if the user is steve.ui (who has OP capability), the command :SHOWPROC job=@j will show all processes for all jobs on the system. If steve.ui only wants to see his own job processes he must enter :SHOWPROC job=@j;user. format This parameter causes :SHOWPROC output to appear in different formats. SUMMARY is the only format provided at this time. A brief description appears below. A complete description can be found in the MPE XL Commands Reference Manual. The SUMMARY display shows process and dispatching queue information. It shows the queue name, process priority, CPU time, the execution state, associated JOB or SESSION number, pin (indented to show tree structure), program name and INFO= string, if any (or command step if the process is CI.PUB.SYS). SUMMARY is the default format. TREE Can be specified in conjunction with the SYSTEM option. SYSTEM Can be used with the TREE option. USER The default for ordinary users who lack OP and SM capability. ANYUSER The default for users with OP or SM capability. SAMPLE OUTPUT :SHOWPROC #p54;tree QPRI CPU STATE JOBNUM PIN (PROGRAM) STEP C152 0:12.999 WAIT S12 54 :TDP "text myfile" C152 0:02.000 WAIT S12 38 (TDP.PUB.SYS) text myfile C152 0:01.030 READY S12 67 (FCOPY.PUB.SYS) from=foo;to=bar;new
NOTE The PIN column is indented by two spaces for each child process.
Example :SHOWPROC { Show all processes for current job/session } :SHOWPROC #p42 >outf { Write process information for pin 42 to OUTF } :SHOWPROC #p42; tree { Show info for pin 42 and all its descendants } :SHOWPROC 1; system; tree { Show all processes if user has SM capability } :SHOWPROC job=@j { Show all processes for all jobs matching the } { user's name (for non-OP, non-SM user) } :SHOWPROC job=@j { Show all processes for all jobs on the system } { (for OP or SM user) } :SHOWPROC (150,#p247,211) { Show process info for pins 150,247,211 } :SHOWPROC job=mgr.payroll { Show process info for all processes logged on } { as mgr.payroll (requires SM or OP capability) } :SHOWPROC job=(#j2,me.ap) { Show process info for all processes belonging } { to job 2 or logged on as me.ap (requires SM } { or OP capability) } Showq Command The :SHOWQ command has been enhanced to filter its output. Syntax ___________________________________________________________________ | | | SHOWQ [;ACTIVE] [;STATUS] | ___________________________________________________________________ The :SHOWQ command displays process scheduling data and the contents of each Dispatcher circular queue. It has been enhanced by the addition of two filtering options, and the boost property (OSCILLATE and DECAY) is displayed. See the :TUNE command and the Dispatcher Communicator article for more information on boost properties. Parameters ACTIVE Causes only the executing/ready processes' information to be displayed, followed by the STATUS lines. STATUS Reduces the output from :SHOWQ to the final lines of display (minimum and maximum quanta for each dispatcher scheduling queue, base and limit queue priorities, and boost properties). Example :SHOWQ; status CQ MINQUANTUM=100, MAXQUANTUM=350, BASEPRI=152, LIMPRI=228, DECAY DQ MINQUANTUM=1000, MAXQUANTUM=1000, BASEPRI=230, LIMPRI=238, DECAY EQ MINQUANTUM=2000, MAXQUANTUM=2000, BASEPRI=240, LIMPRI=253, OSCILLATE MINIMUM CLOCK CYCLE=N/A :SHOWQ; active DORMANT RUNNING Q PIN JOBNUM Q PIN JOBNUM D M96 #S470 CQ MINQUANTUM=100, MAXQUANTUM=350, BASEPRI=152, LIMPRI=228, DECAY DQ MINQUANTUM=1000, MAXQUANTUM=1000, BASEPRI=230, LIMPRI=238, DECAY EQ MINQUANTUM=2000, MAXQUANTUM=2000, BASEPRI=240, LIMPRI=253, OSCILLATE MINIMUM CLOCK CYCLE=N/A Tune Command The :TUNE command now supports oscillation for the three circular dispatcher subqueues. Syntax ________________________________________________________________ | | | TUNE [minclockcycle] | | {CQ} | | [[;]{DQ}=[base][,[limit][,[min][,max][,[{DECAY }]]]]]]| | {EQ} {OSCILLATE} | | [[;]...] | ________________________________________________________________ The :TUNE command adjusts priorities, quantums and boost properties for the dispatcher circular queues. For more information please read the Dispatcher article in this Communicator. OSCILLATE is a new boost property for Release 2.1. DECAY was the only boost property supported prior to Release 2.1, and is the default. Both boost properties cause a process's priority to decay from the base value to the limit. The rate of decay is inversely related to the quantum. Whenever a dispatcher transaction (e.g. a terminal read) completes the process's priority is boosted back to the base value. DECAY allows a process's priority to remain at the limit until a transaction completes or the process is preempted. OSCILLATE causes the process's priority to jump to the base value as soon as the limit is reached.
CAUTION Misuse of the :TUNE command can significantly degrade system operating efficiency.
Example :TUNE dq=228,238,,,oscillate NEW VARIABLES Release 2.1 of MPE XL supports six new predefined variables: HPCIERR, HPCIERRCOL, HPERRSTOLIST, HPFSERR, HPSTDLIST and HPSTDIN. HPCierr HPCIERR is a read/write integer variable that contains the most recent CI related error. It is very similar to CIERROR, except that warnings are negative numbers and errors are positive. (CIERROR is unsigned.) HPCierrCol HPCIERRCOL is a read/write integer variable that contains the column number of the offending parameter for the most recent CI command error (this is the location of the caret, "^"). Zero implies that the CI would not have displayed a caret for this error. NOTE: the length of the CI's prompt is not included. Below is an example to print a caret under an erroneous parameter (the CI's prompt is accounted for): echo ![rpt(' ',len("!hpprompt")+hpcierrcol-1)]^
NOTE HPPROMPT needs to be explicitly dereferenced since it may contain other variables.
HPErrsToList HPERRSTOLIST is a boolean read/write variable. TRUE, which is the default, means that all CI errors/warnings will be written to $STDLIST. FALSE indicates that CI errors and warnings will be written to $STDERR. See the I/O Redirection article for more information. HPSerr HPFSERR is a read/write integer variable that contains the file system error for the most recent CI command error. A value of zero means that a separate file system error message is not reported by the CI. Zero does not necessarily indicate the absence of any file system related error. For example: :print xyzzy ^ NONEXISTENT PERMANENT FILE (FSERR 52) THE PRINT COMMAND FAILED. (CIERR 9080) :echo CIerr=!hpcierr, FSerr=!hpfserr, ErrCol=!hpcierrcol CIerr=9080, FSerr=52, ErrCol=7 :run xyzzy ^ PROGRAM FILE XYZZY.VANCE.UI NOT FOUND. (CIERR 622) :echo CIerr=!hpcierr, FSerr=!hpfserr, ErrCol=!hpcierrcol CIerr=622, FSerr=0, ErrCol=5 The last example shows the :RUN command failing due to a nonexistent file; however, HPFSERR is zero and the CI does not display a separate file system error message. HPStdin / HPStdList HPSTDIN and HPSTDLIST are read-only string variables reflecting the file names for $STDIN and $STDLIST, respectively. The default values are '$STDIN' and '$STDLIST'. If I/O has been redirected, the formal file name (or backreference designator) appears, rather than the default strings. More information is available in the I/O Redirection article. NEW PARAMETER HANDLING The rules for the user command header (PARM line and OPTIONs) have been relaxed, command files can now be variable record width files (UDCs still cannot), and a new parameter type, ANYPARM, supports syntax-free user commands. The reserved words PARM, ANYPARM and OPTION begin statements which constitute the user command header. For UDCs only, parameters may be defined in the same line as the UDC name, with additional parameters described in subsequent PARM or ANYPARM lines. Parameter and option lines may be interspersed. There is a limit of 255 parameters per user command. If ANYPARM is specified it must be the last parameter definition statement, meaning that PARM cannot follow an ANYPARM declaration. The user command header is terminated by the first non-PARM, non-ANYPARM, non-OPTION record. For example: OPTION logon PARM p1, p2=hi OPTION list PARM flag=" PARM p3=there PARM p1 doit OPTION nohelp PARM p2="what's up, doc?" doit ANYPARM p3=what's up, doc? doit AnyParm ANYPARM causes all normal delimiters to be ignored; meaning, delimiters are now considered part of the parameter's value. This definition forces ANYPARM to be the last parameter declared, since equalsign (=), comma, semicolon, quotes, etc. are treated as part of the ANYPARM parameter's value. A benefit of ANYPARM can be seen in the following example: MYTELL user, word1=",w2=",w3=",w4=",w5=",w6=",w7=",w8=",w9=",w10=" tell !user; !hpdatef (!hptimef) -- !word1 !w2 !w3 !w4 !w5 !w6 !w7 !w8 !w9 !w10 *** :mytell zinta.ui This will work; however, we may need some better examples? FROM/S505 JEFF.UI/MON, OCT 30, 1989 ( 3:11 PM) -- This will work however we... Note that a longer message requires quoting, and the ";" and "," are lost since they are delimiters. --versus-- MYTELL user ANYPARM message=<no message> tell !user; !hpdatef (!hptimef) -- !message *** :mytell mikep.uis Will woff;tr,i,d;lev 0,1;mr sp sp-40;mr pc r2 work?? FROM/S505 JEFF.UI/MON, OCT 30, 1989 ( 3:11 PM) -- Will woff;tr,i,d;lev 0,1;... The first example is limited to 10 words, unless quoting is used. The ANYPARM version does not require the user to quote or count parameters, and all normal delimiters are ignored, and thus treated as data. FINFO ENHANCEMENT FINFO is a function which can be used in any MPE XL expression. MPE XL expressions are used in the :CALC, :IF, :ELSEIF, :WHILE, and :SETVAR commands. An expression can be appear in any command through expression substitution, i.e. ![expression]. FINFO requires two parameters. The first is a string expression which names a file. The second is an integer expression which indicates what type of information about the file is desired. This parameter is the item number used by the FLABELINFO intrinsic. The information is returned as the FINFO functional return. As of MPE XL Release 2.1, the FINFO function has been enhanced in two ways. First, FINFO now supports all FLABELINFO options. Previously, it supported only a subset of the FLABELINFO items. Second, the second parameter can now be a string. This string is an "alias" for the option number. Each option number has one or more aliases. For example: :listf myfile,2 ACCOUNT= X GROUP= C FILENAME CODE ------------LOGICAL RECORD----------- ----SPACE---- SIZE TYP EOF LIMIT R/B SECTORS #X MX MYFILE 132B VA 122 30 1 16 1 1 :calc finfo('myfile',19) 122, $7A, %172 :calc finfo('myfile','end of file') 122, $7A, %172 :calc finfo('myfile','EOF') 122, $7A, %172 The first use of the :CALC command is the old format with an integer of 19 to request the end of file of MYFILE from FINFO. The next command uses the string 'end of file' instead of 19. The last example uses the other alias for end of file, 'EOF'. The table below shows all of the FINFO option numbers and their corresponding string name aliases. Data Option Type Data Number Aliases B Existence of file 0 'EXISTS' S Fully Qualified File Name 1 'FULL FILENAME' 'FULLFNAME' 'FULLY QUALIFIED FILENAME' S File Name Only (No Group or Acct) -1 'FILENAME ONLY' 'FNAME' S Group Name Only 2 'GROUP NAME' 'GROUP' S Account Name Only 3 'ACCOUNT NAME' 'ACCT' S User ID Of File Creator 4 'CREATOR' S Formatted Security Matrix 5 'FMTSECURITY' 'FORMATTED SECURITY MATRIX' I Security Matrix (Bit Map) -5 'INTSECURITY' 'SECURITY MATRIX' S Formatted Creation Date 6 'CREATED' (e.g. MON, OCT 16, 1989) 'CREATION DATE' 'FMTCREATED' I Integer Creation Date -6 'CREATION DATE INTEGER' (e.g. 19891016) 'INTCREATED' S Formatted Date Last Accessed 7 'ACCESSED' 'FMTACCESSED' 'LAST ACCESS DATE' I Integer Last Accessed Date -7 'INTACCESSED' 'LAST ACCESS DATE INTEGER' S Formatted Date Last Modified 8 'FMTMODDATE' 'LAST MOD DATE' 'MODIFIED' I Integer Last Modified Date -8 'INTMODDATE' 'LAST MOD DATE INTEGER' S File Code Mnemonic (e.g. NMPROG) 9 'FILE CODE MNEMONIC' 'FMTFCODE' I Integer File Code (e.g. 1030) -9 'FCODE' 'FILE CODE' 'INTFCODE' I Number of User Labels Written 10 'USER LABELS WRITTEN' I Number of User Labels Available 11 'USER LABELS AVAIL' I File Limit 12 'FILE LIMIT' 'LIMIT' S FOPTIONS In LISTF Format 13 'FMTFOPT' 'FORMATTED FOPTIONS' I FOPTIONS Bit Map -13 'FOPTIONS' 'INTFOPT' I Record Size In CM Words 14 'RECORD SIZE' (Negative Means Bytes) 'RECSIZE' I Block Size 15 'BLKSIZE' 'BLOCK SIZE' I Maximum Number Of Extents 16 'MAX EXTENTS' 'MAXEXT' I Size Of The Last Extent 17 'LAST EXTENT SIZE' 'LASTEXTSIZE' I Extent Size 18 'EXTENT SIZE' 'EXTSIZE' I End Of File 19 'END OF FILE' 'EOF' S Formatted Allocation Time 20 'ALLOC TIME' (e.g. 2:15 PM) 'FMTALLOCTIME' I Integer Allocation Time -20 'ALLOC TIME INTEGER' (e.g. 141524 for 2:15:24 PM) 'INTALLOCTIME' S Formatted Allocation Date 21 'ALLOC DATE' 'ALLOCATED' 'FMTALLOCDATE' I Integer Allocation Date -21 'ALLOC DATE INTEGER' 'INTALLOCDATE' I Number of Open/Close Records 22 'NUM OPEN CLOSE RECS' S Device Name 23 'DEVICE NAME' 'DEVNAME' S Formatted Last Modified Time 24 'FMTMODTIME' 'LAST MOD TIME' I Integer Last Modified Time -24 'INTMODTIME' 'LAST MOD TIME INTEGER' S First User Label 25 'FIRST USER LABEL' S Unique File Identifier 27 'UFID' 'UNIQUE FILE ID' I File Limit In Bytes 28 'BYTE FILE LIMIT' 'BYTELIMIT' I Offset Of Data In Bytes 29 'BYTE DATA OFFSET' 'DATASTART' I Record Size In Bytes 30 'BYTE RECORD SIZE' 'BYTERECSIZE' I Block Size In Bytes 31 'BYTE BLOCK SIZE' 'BYTEBLKSIZE' I Extent Size In Bytes 32 'BYTE EXTENT SIZE' 'BYTEEXTSIZE' S Lockword 33 'LOCKWORD' S Volume Restriction 34 'VOLRESTR' 'VOLUME RESTRICTION'


MPE/iX Communicators