.CHAPTER Utility Programs .HL 1 Bridge System .hl 2 Background The Bridge System was conceived at Medtronic because of the necessity of many different systems having a need to share large amounts of data. While it would be possible to use a low to medium speed communication link for some data transfers (e. g., RT3780), this is not feasible with large data transfers. A bridge program resides on the following CPC systems: VAX 8530; IBM/System 38; and Sperry 1100/72. The tapes that are created and used on these systems have a common format: 6250 bpi; unlabelled; and 2 files, the first being a header file describing in detail the format of the second file (it includes the original data file name, target data file name, creation date and time, creating system name, creating user id, record length, and blocking factor). On some systems, the number of records of output data are written, but this field is optional. The user also has the capability to include a command file that executes after the data are copied. Regardless of the operation (read or write), a report is printed at the system printer, and the user has the option to produce another copy for his own use. .s For more information, please refer to the current Bridge documentation. .hl 2 Interactive Procedure Attach to the default directory, as the new file will be created in or read from the current directory. The user interface is through a menu driven program. Enter .s .c $ ^&BRIDGE\& .s to start the procedure. (It is also possible to enter "BRIDGEIN" to directly begin a read operation and "BRIDGEOUT" to begin a write operation.) The output report that is created is SYS$LOGIN:OD2436.DAT. Only 1 version is retained. It may be deleted manually if so desired. A copy of this report is also fiched automatically. .hl 3 Example .nf [RUCKER] $ BRIDGEOUT Medtronic VAX Tape Bridge - Version 1.0 (Control-Y exits the program) Please enter the following information to create the tape. Enter the data file name: ^&LOGIN.COMI\& File MED$USERS:[RUCKER]LOGIN.COMI; does not exist. Please reenter. <<< All files are verified for their existence. >>> Enter the data file name: ^&LOGIN.COM\& Enter the file name on the target machine: ^&6805*TEMP.\& Enter the record length: ^&80\& Enter the blocking factor: ^&10\& Do you want to include a command file for the target machine? Enter YES or NO: ^&NO\& Please enter the reel number to be mounted: ^&RRTEMP\& Please tell an operator to mount RRTEMP on drive _MUA0: with a write ring. <<< Let Operations know there is an outstanding VAX message. >>> Reel RRTEMP was mounted with no write ring. Please tell the operator to insert a write ring and remount the tape. <<< Oops! Operator error! >>> Reel RRTEMP has been mounted on drive _MUA0: and is now being processed. FORTRAN STOP <<< This is the successful completion message. >>> Processing of the tape has completed. Would you like to have your own copy of the output report? Enter "NO" or QUEUE name (e. g., PR7, MIS1, INT3, or TXA0) Selection: ^&TXA0\& Job OD2436 (queue TXA0, entry 3) started on TXA0 .f .hl 2 Batch Procedure The Bridge interface may also be called from a batch job. The formats are as follows: .nf BRIDGE READ BRIDGE WRITE .f Note that a print queue here is not optional, but required. If any paramaters are invalid, the procedure terminates. .hl 3 Example To perform the same thing as above, the following command would be entered: .nf [RUCKER] $ ^&BRIDGE_ WRITE_ RRTEMP_ TXA0_ LOGIN.COM_ 6805*TEMP._ 80_ 10\& Medtronic VAX Tape Bridge - Version 1.0 (Control-Y exits the program) Please tell an operator to mount RRTEMP on drive _MUA0: with a write ring. Reel RRTEMP has been mounted on drive _MUA0: and is now being processed. FORTRAN STOP Processing of the tape has completed. Job OD2436 (queue TXA0, entry 40) started on TXA0 .f .hl 1 CONTACT The CONTACT run is used to find out information about a production batch job. To get information enter "^&CONTACT\&" and the job name. Two fields of interest are F (Frequency: D-Daily, W-Weekly, M-Monthly, R-Request) and C (Criticality: A, B, or C). .hl 2 Example .nf [RUCKER] $ ^&CONTACT_ 540V\& Name F C Description User Contact Support Contact Run ID ---- - - ------------------ --------------- ----------------- -------- 540V D A Micro-Rel Dir Ship Roger Ruckert Roger Ruckert RUCKER .f This is a daily job of priority A. .hl 1 ERRFIN System This program is similar to its cousin on the Sperry. It is a batch job tracking system that also keeps a history of jobs that have completed. Batch jobs desiring to use this capability begin their runs with a call to ERRFIN, logging this information to a file. When the terminate successfully, they call ERRFIN again, this time removing their information from the file. If the job aborts, the record is never removed from the active file. A background job activates every 15 minutes and verifies that every job that is in the active file is still running. If not, a message is sent to the console that the job has ERRFINned. .s The different options with ERRFIN are as follows: .nf .s ERRFIN 1 job is activating (batch jobs use this) ERRFIN 0 job is deactivating (batch jobs use this) ERRFIN REMOVE B job B is removed from the active list ERRFIN STATUS B display the status of B (both active and historical files are searched) ERRFIN DISPLAY display all active jobs ERRFIN INITIALIZE initializes the active file ERRFIN HELP provides the user with on-line help .f Commands may be abbreviated down to 1 character. Thus, "ERRFIN D" is the same as "ERRFIN DISPLAY". .s The historical files are cycled monthly as part of 600M. Thus, notify Tech Services if you need information about a job that was run before the last month end. .hl 1 File Convert This program converts a file from carriage return carriage control to FORTRAN carriage control. The output file can either be printed or retained. A menu interface is provided. Possible uses for this is converting a file into a fixed length record format from the variable length inherent in carriage return carriage control and printing a FORTRAN carriage control file that uses the first column for other than carriage control purposes. .hl 2 Interactive Procedure .nf [RUCKER] $ ^&FC\& Convert FORTRAN Files Utility (Control-Y exits the program) Please enter the file you wish to convert: ^&LOGIN.COM\& If you intend to only print the file and not retain a converted copy, hit the carriage return. Otherwise, enter the new file name: ^&\& <<< I only want to print the file. >>> Enter the number of lines per page (default is 55): ^&\& The conversion is in progress ... Where do you want this printed (enter a printer like PR7 or INT3 to print or just carriage return if you don't want to): ^&PR7\& Job LOGIN.COM (queue PR7, entry 4) pending pending status caused by queue stopped state .f .hl 2 Batch Procedure This utility can also be used in a batch program. The command has the following format: .nf FC .f The parameter is required here, although the parameter is optional. The is usually 0. It could be used when you wanted to print a 66 line input page with the bottom 6 lines blank into a 60 line output page by specifying 6 here, for example. .hl 3 Example To perform the same function as in the example above, the input would be: .nf [RUCKER] $ ^&FC_ LOGIN.COM_ LOGIN.TMP_ 55_ 0_ TXA0\& Convert FORTRAN Files Utility (Control-Y exits the program) The conversion is in progress ... Job LOGIN.COM (queue TXA0, entry 50) started on TXA0 .f .hl 1 MAINT .HL 2 Background Since several of the administrative functions for all CPC systems are performed by the Help Center, there are menu programs for these systems that reduce the amount of effort required to perform these tasks. This run currently allows the Help Center (or other user with the appropriate system priveleges) to perform the following tasks outlined below. .s ^&NOTE:\& This command procedure was written to handle most error situations that could arise. The only system messages that should appear begin with "%I", or informational messages. Unless otherwise noted below, please inform tech services if other error messages appear that begin with "%W" (warnings), "%E" (error), "%F" (fatal), or "%S" (serious). .HL 2 Procedure Type "MAINT" and the menu will guide you through the procedures. At present, the following functions are available: .HL 3 Add a User or Group Each user has a unique UIC (User Identification Code), which consists of two parts: a group number and a member number. For convenience, groups are the users' departments (e.g., Product Performance, Tech Services). User signons must be unique, so this utility guarantees that they are. The signon is typically the user's last name, but in the case of multiple users with the same last names, characters from the first name are added until the signon is unique. (This is the same approach used on the Voice Mail system.) To add a user, you need to know his department name, cost center, mail stop, first name, and last name. The system prompts you for this information and does all of the necessary work to create the user profile and his personal directory. All users are assigned an initial password of "TEMP". This password must be changed by the user after the initial login by the "SET PASSWORD" command. .s If the group does not exist, follow the logic to add a group. In the interests of readability, use underscores in the group name where appropriate. .HL 3 Delete a User or Group Deleting users is very straightforward. Simply type in the user name when prompted. If the user's directory contains subdirectories, there might be errors occasionally that a certain subdirectory could not be deleted. The program continues to delete these, and all should eventually be deleted. The key message to watch for is the deletion of the top level directory "[USERS]user.DIR". When deleting user Smith, for example, this message is .s .c %I, SYS$SYSDEVICE:[USERS]SMITH.DIR;1 deleted (2 blocks) .s After deleting the directories, the user's profile is removed from the user authorization file (SYSUAF.DAT) and the RIGHTSLIST.DAT file. .s Deleting a group requires only the group number, as displayed on the screen. Note that a group cannot be deleted while there are active members in that group. These members must first be deleted, and then the group can be deleted. .HL 3 Modifying a User's Password To perform this task, simply enter the user's signon and new password. All messages will be generated by the AUTHORIZE utility, not this program. In case of errors, the message should provide the clues to perform the correct action. The current minimum is 6 characters. .HL 3 Modifying a User's Disk Quota Each user is initally assigned a disk quota of 1000 blocks. This may be increased (when the disk space is available) by taking the appropriate option in the run and indicating the user's signon and new disk quota. These quotas help maintain fairness in distributing the computing resources, so question any huge requests (say, greater than 5000 blocks). .hl 3 Display signons This option displays all of the active signons on the system. .hl 3 Make a signon captive to All-in-1 This option makes a signon captive to All-in-1. This means that it is the only thing the user can do on the system. .hl 3 Make an All-in-1 captive signon not captive This option uncativates an All-in-1 user and allows them to use other facilities on the VAX. .hl 1 MQ This is identical to the Q utility, except that all queues, including mail queues, are displayed. Since most users do not care about these queues, they will usually use the Q utility. .hl 1 OPREPLY This utility will allow a command procedure to solicit a reply from an operator and have the result placed in a symbol that is available for interrogation. This is useful, for example, in the DCL of a job that only runs once per year to verify that it should actually be running. The message to the operator may be up to 80 characters in length, while the symbol returned is up to 40 characters. If the operator replies but does not include a reply message, the null string is returned. .hl 2 Example Here is a sample code fragment using the utility: .nf .s $ RU MED$COMMON:OPREPLY ' IS THIS MESSAGE COMING THROUGH (Y OR N) ' $ OPREPLY = F$EDIT (OPREPLY, "TRIM,UPCASE") $ OPREPLY = F$EXTRACT (0, 1, OPREPLY) $ SHOW SYMBOL OPREPLY OPREPLY = "Y" $ IF (OPREPLY .EQS. "Y") THEN ... .f .hl 1 Q The Q utility will provide information about batch and print queues. Not all active jobs are shown (refer to the MQ utility), but rather only those of interest to most users. One line is printed for each batch and print job. The items of interest for batch jobs are the queue type (B), queue name (usually SYS$BATCH), the job name, user name, entry number, when it was submitted, and either the holding time if it will start executing later or the PID and current status. Here is an example: .nf [RUCKER] $ ^&Q\& QUEUE STATUS ON 27-NOV-88 15:56:36 Q QUEUE SIZE BLKS T NAME JOB NAME USER ENTRY WHEN SUBMITTED BLKS PRTD STATUS - ----- -------- ------- ----- ------------------ ---- ---- --------- B SYS$B SLOWPOKE RUCKER 244 27-NOV-88 15:47:38 PID=00F33 Executing .f For print jobs, the items of interest are the queue type (P), queue name, job name, user name, entry number, when it was submitted, the size in blocks, the number of blocks printing, and the status. If the job is currently printing on an SPD execution queue, the Q utility also tells which device it is printing on as well as when it started printing. Here is an example of a print job currently executing on an SPD execution queue: .nf [RUCKER] $ ^&Q\& QUEUE STATUS ON 27-NOV-88 15:56:36 Q QUEUE SIZE BLKS T NAME JOB NAME USER ENTRY WHEN SUBMITTED BLKS PRTD STATUS - ----- -------- ------- ----- ------------------ ---- ---- --------- P*PR7 Q.LIS RUCKER 244 27-NOV-88 15:47:38 341 219 Executing *PR7 started printing TXA6 at 27-NOV-88 15:48:15 .f Note that the blocks printed field is not continuously updated, but only occasionally updated by the symbiont. Therefore, the job may actually be printing even though the blocks printed field remains the same. .hl 1 RERUN The RERUN facility is similar to the ST facility, except that users may edit the files in the MED$RERUN directory. When a batch job typically goes down, the fact that it has gone down will be noticed by ERRFIN. The Operator will answer ERRFIN's outstanding console message and notify the support person that the job has gone down. The support person will then look at the job's output, most likely in MED$PRD, and make a determination of how to proceed. If the job should just be restarted as is, the support person would instruct Operations to just restart the job (Operations would then just use the ST facility). If, however, changes need to be made to the job's DCL, the support person would copy the job's DCL from MED$PRODDCL to MED$RERUN and make the necessary changes in MED$RERUN. The support person would then instruct Operations to rerun the job. (To rerun job 600M, for example, just enter "^&RERUN_ 600M\&".) .hl 1 ST The ST facility allows for a common operator starting interface. It is similar to the same facility on the Sperry. All jobs started this way run under a specified user id and have their output placed in MED$PRD for fiching. To start job 600M, for example, just enter "^&ST_ 600M\&". .hl 1 WHOIS This utility allows a user to find out who a given signon belongs to. This became necessary as the cryptic nature of the signons, as well as the distributed geographic location of the signons, made it difficult to determine who and where a user is. To use this utility, simply enter "WHOIS" and the signon you are interested in. The information is read directly from the system UAF. .hl 2 Example .nf [RUCKER] $ ^&WHOIS_ RUCKER\& User RUCKER is B100-ROGER-RUCKERT .f .hl 1 XEROX .hl 2 Background Users can print output from the VAX on the Xerox 8700 laser printer. The reports must be queued using the Xerox utility. The VAX to Xerox 8700 interface consists of five commands, two of them operator only commands, which combine to form a smooth, simple interface. .hl 2 Commands .HL 3 X This is a separate function, but rather allows the user to get a menu of the available options. It leads to one of the other commands listed or allows the user to exit the procedure. .hl 3 X8700 This user command is used to send output to a queue for subsequent extraction and printing. The user must first be positioned to the directory where the file to be printed is. After the file has been queued, an XLIST is automatically performed to verify that the file was correcetly queued. .s The various format options are as follows: .ls .le;^&LAND:\& Landscape format. Standard 11 x 8.5 report. .le;^&GBAR:\& Grey bar format. Standard 11 x 8.5 report with grey bars. .le;^&PORT:\& Portrait format. 8.5 x 11 report. 76 lines-per-page but only 72 columns wide. Should only be used for producing documents such as manuals. .le;^&PRIV:\& Private format. Landscape format with the words PRIVATE INFORMATION printed on the margins. .le;^&CONF:\& Confidential format. Same as Private only with the wording CONFIDENTIAL INFORMATION on the margins. .le;^&2-UP:\& Same as landscape but reduces the pages and prints them two at a time on one sheet of paper. .els X8700 can be used either by walking through the menu or entering the command in a batch format. That format is .nf .s X8700 .f All parameters should be entered to use this format. .hl 3 XLIST This user command will produce a listing of all files currently queued for printing. .hl 3 XCANCEL This operator command is used by the operations staff remove selected files from the queue at the request of the original user. .hl 3 XTRACT This operator command allows the operations staff to extract onto tape those files on the VAX that are marked as ready for printing. If there are more files queued than will fit onto a single reel, the procedure will only fill up one reel and notify the operator that there are more files to be extracted. Additional XTRACTs will then be necessary to extract all files. .hl 3 XAUDIT This user command allows for querying the audit file of activity that has already occurred. The audit file is cycled at accounting month end as part of 600M, so contact Tech Services with queries for the previous month. .hl 2 System Operation The following steps describe the flow of events involved in this interface. .ls .le;The user creates an output file, on disk, using a program or editor. .le;The user executes the X8700 command to place the report into a queue. The original report is not altered or deleted. The user can verify that the report is queued by issuing the XLIST command. .le;At this point, the report is waiting for the Operations staff to extract the report to tape for printing. .le;The user can at this point request the operator to cancel the report if it is determined that it should not be printed for whatever reason. Once extracted, however, this is not possible. .le;The operator, at some predetermined time of day, issues the XTRACT command. This requests that a tape be mounted, and all reports available for printing are extracted. .le;The Xerox operator processes the tape and distributes the reports per the user supplied information. .le;The user may query the audit file to verify that the report was printed. .els The report to be printed is converted to a FORTRAN carriage control format, if necessary, by the X8700 process. This takes place transparently to the user. .hl 2 Interactive X8700 Example .nf [RUCKER] $ ^&X8700\& Medtronic VAX To Xerox Program - Version 1.0 (Control-Y exits the program) Please enter the file name: ^&ERRFIN.LIS\& Enter the number of copies (default is 1): ^&\& Enter the cost center: ^&1398\& Enter print format (default is LAND): ^&\& Deliver to (or hold): ^&B100-RUCKERT\& Now processing your request ... Userid .Filename .Cp.CCtr.Fmt .Mail Stop . When Queued ========.============.==.====.====.=================.=============== RUCKER ERRFIN.LIS;1 01 1398 LAND B100-RUCKERT 29-DEC-88 16:00 <<< Note that an XLIST follows at the end of the X8700 to verify <<< that the file has indeed been queued. .hl 2 Batch X8700 Example .f Here is a batch example to do exactly what the previous example did. .nf [RUCKER] $ ^&X8700_ ERRFIN.LIS_ 1_ 1398_ LAND_ B100-RUCKERT\& Now processing your request ... Userid .Filename .Cp.CCtr.Fmt .Mail Stop . When Queued ========.============.==.====.====.=================.=============== RUCKER ERRFIN.LIS;1 01 1398 LAND B100-RUCKERT 29-DEC-88 16:00 RUCKER ERRFIN.LIS;2 01 1398 LAND B100-RUCKERT 29-DEC-88 16:01 .f .hl 2 XAUDIT Example .NF [RUCKER] $ ^&XAUDIT_ RUCKER\& USER ID CCTR CP PAGES FILE NAME DELIV WHEN QUEUED WHEN EXTRACTED ------- ---- -- ----- --------- ----- --------------- --------------- RUCKER 1398 1 136 CB-REPORT B100- 28-DEC-88 01:33 28-DEC-88 07:45 RUCKER 1398 1 6 CHAPTERS B100- 28-DEC-88 15:04 28-DEC-88 15:34 RUCKER 1398 1 47 CHAPTERS B100- 28-DEC-88 15:05 28-DEC-88 15:34 RUCKER 1398 1 6 X8700.HE B100- 28-DEC-88 15:12 28-DEC-88 15:34 .f