Table of Contents
Information
The following document is a more user friendly method of using AUTOGEN.COM. It will show you the original display that AUTOGEN generates, but also provide a table of information containing the parameters that are being recommended for change, the old value of the parameter, the new proposed value of the parameter, the difference between those values, and the default value of the procedure.
Errors may occur during the copy/paste of this document, so test it in a safe place before using it in production.
Procedure
Create a command procedure with the following information:
$! parsec_autogen.com $! $! This procedure executes autogen.com and displays the report to the user $! Along with a list of changed parameters $! If the system has been up 14 days or more, it will save feedback information $! And use it, otherwise it will use previously saved feedback information. $! $! Check privs $! $ privs_needed = "sysprv,cmkrnl,oper" $ svprv = f$setprv (privs_needed) $ cur_prv = f$privilege(privs_needed) $ if cur_prv .eqs. "FALSE" $ then $ write sys$output "You have insufficient privileges for this procedure." $ exit $ else $ write sys$output "You have sufficient privileges to continue." $ endif $! $! Block CNTL-Y $! $ type sys$input The CTRL-Y is being blocked in this procedure. Please be patient and wait for the "Do you wish to keep these changes [Y]?" question and answer no. This is being done to prevent accidental changes of the system parameters that will affect the next reboot when you intended to exit the procedure. $ set nocontrol=y $ $ define /user_mode sys$output sys$scratch:params.inf_old $ mcr sysgen use active show/all show/special use current write sys$scratch:vmssys.parsec $! $ call uptime $ if uptime_days .ge. 14 $ then start = "savparams" $ else start = "getdata" $ endif $ if p1 .nes. "" then start = p1 $ if start .nes. "NONE" $ then $ if p2 .eqs. "" then p2 = "setparams" $ write sys$output "@sys$update:autogen ''start' ''p2' ''p3'" $ svprv = f$setprv ("sysprv,cmkrnl") $ @sys$update:autogen 'start' 'p2' 'p3' $ svprv = f$setprv (svprv) $ endif $! $ define /user_mode sys$output sys$scratch:params.inf_new $ mcr sysgen use current show/all show/special $! $ close /nolog in1 $ close /nolog in2 $ close /nolog out $ open /read in1 sys$scratch:params.inf_new $ open /read in2 sys$scratch:params.inf_old $ open /write out sys$scratch:params.inf_dif $ write out "Parameter name Old value New value Difference Default" $next_diff: $ read in1 /end=done_diff rec1 $ read in2 rec2 $ if rec1 .eqs. rec2 then goto next_diff $ if f$extract (2, 9, rec1) .eqs. "Parameter" then goto next_diff $ rec1 = f$edit (rec1, "trim") $ pname = f$element (0, " ", rec1) $ if pname .eqs. "internal" then goto next_diff $ mode = f$extract (f$length(rec1)-5, 5, rec1) $ if mode .eqs. "Ascii" $ then $ pnew = f$edit (f$element (1, """", rec1), "trim") $ pnew = f$extract (f$length(pnew), 10, " " + pnew) $ pdef = f$edit (f$element (3, """", rec1), "trim") $ pdef = f$extract (f$length(pdef), 10, " " + pdef) $ pold = f$edit (f$element (1, """", rec2), "trim") $ pold = f$extract (f$length(pold), 10, " " + pold) $ write out f$fao ("!24AS !10AS !10AS !10AS", pname, pold, pnew, pdef) $ else $ rec1 = f$edit (rec1, "compress") $ pnew = f$integer (f$element (1, " ", rec1)) $ pdef = f$interer (f$element (2, " ", rec1)) $ rec2 = f$edit (rec2, "trim,compress") $ pold = f$integer (f$element (1, " ", rec2)) $ diff = f$fao ("!10SL", f$integer(pnew) - f$integer(pold)) $ write out f$fao ("!24AS !10UL !10UL !AS !10UL", pname, pold, pnew, diff,pdef) $ endif $ goto next_diff $done_diff: $ close in1 $ close in2 $ delete sys$scratch:params.inf_new;* $ delete sys$scratch:params.inf_old;* $ close out $ if start .nes. "NONE" then - read sys$command recl/prompt="Press <RETURN> to review reports " $ type /page=save sys$scratch:params.inf_dif,sys$system:agen$params.report $ if start .nes. "NONE" $ then $ read sys$command recl/prompt="Do you wish to keep these changes [Y]? " $ if recl .nes. "" .and. .not. recl $ then $ mcr sysgen use sys$scratch:vmssys.parsec write current $ endif $ endif $ delete sys$scratch:params.inf_dif;*,sys$scratch:vmssys.parsec;* $ exit $! $! Support routine $uptime: $ subroutine $! UPTIME.COM $! $! This procedure gets system current uptime from a SHOW SYSTEM command $! And stores the value in some global symbols. $! $ show system /output=uptime.dat $ open /read /share=read inf uptime.dat $!OpenVMS V6.2-1H3 on node PARIS 4-FEB-1999 10:11:36:.03 Uptime 10 18:48:48 $ read inf upt $ close inf $ delete /nolog uptime.dat;* $ x = f$locate ("Uptime", upt) $ upt = f$extract (x+7, 9999, upt) $ uptime == f$edit (upt, "trim,compress") $ uptime_days == f$integer (f$element (0, " ", uptime)) $ x = f$element (0, ":", uptime) $ uptime_hours == uptime_days * 24 + f$integer (f$element (1, " ", x)) $ if p1 .nes. "" then - write sys$output "''f$getsyi("nodename")' has been up ''uptime'" $ exit $ endsubroutine
Sample Run
This is a sample run of the procedure:
$ @parsec_autogen You have sufficient privileges to continue. The CTRL-Y is being blocked in this procedure. Please be patient and wait for the "Do you wish to keep these changes [Y]?" question and answer no. This is being done to prevent accidental changes of the system parameters that will affect the next reboot when you intended to exit the procedure. @sys$update:autogen savparams setparams %AUTOGEN-I-BEGIN, SAVPARAMS phase is beginning. %AUTOGEN-I-FEEDBACK, Gathering feedback %AUTOGEN-I-NEWFILE, A new version of SYS$SYSTEM:AGEN$FEEDBACK.DAT has been created. You may wish to purge this file. %AUTOGEN-I-END, SAVPARAMS phase has successfully completed. %AUTOGEN-I-BEGIN, GETDATA phase is beginning. %AUTOGEN-I-NEWFILE, A new version of SYS$SYSTEM:PARAMS.DAT has been created. You may wish to purge this file. %AUTOGEN-I-END, GETDATA phase has successfully completed. %AUTOGEN-I-BEGIN, GENPARAMS phase is beginning. %AUTOGEN-I-NEWFILE, A new version of SYS$MANAGER:VMSIMAGES.DAT has been created. You may wish to purge this file. %AUTOGEN-I-NEWFILE, A new version of SYS$SYSTEM:SETPARAMS.DAT has been created. You may wish to purge this file. %AUTOGEN-I-END, GENPARAMS phase has successfully completed. %AUTOGEN-I-BEGIN, GENFILES phase is beginning. ****************** %AUTOGEN-W-REPORT, Warnings were detected by AUTOGEN. Please review the information given in the file SYS$SYSTEM:AGEN$PARAMS.REPORT ****************** %AUTOGEN-I-REPORT, AUTOGEN has produced some informational messages which have been stored in the file SYS$SYSTEM:AGEN$PARAMS.REPORT. You may wish to review the information in that file. %AUTOGEN-I-END, GENFILES phase has successfully completed. %AUTOGEN-I-BEGIN, SETPARAMS phase is beginning. %AUTOGEN-I-SYSGEN, parameters modified %AUTOGEN-I-END, SETPARAMS phase has successfully completed. Press <RETURN> to review reports Parameter name Old value New value Difference Default MAXPROCESSCNT 185 167 -18 32 PROCSECTCNT 512 128 -384 128 SYSMWCNT 8601 8438 -163 8192 NPAGEDYN 33153024 31498240 -1654784 4194304 NPAGEVIR 173146112 166166528 -6979584 16777216 PAGEDYN 7340032 7200768 -139264 4194304 CHANNELCNT 2560 512 -2048 512 MPW_LOLIMIT 549 495 -54 256 LOCKIDTBL 19918 17051 -2867 3840 RESHASHTBL 16384 32768 16384 64 LNMSHASHTBL 512 1024 512 512 BALSETCNT 183 165 -18 30 GBLPAGES 4324845 4305741 -19104 131072 MPW_THRESH 1098 990 -108 16 ACP_HDRCACHE 1098 990 -108 36 ACP_QUOCACHE 185 167 -18 64 PIXSCAN 18 16 -2 1 **End-of-File** | PREV/NEXT=Scroll, INS/REM=Pan, SELECT=80/132, Q=Quit SYS$SYSROOT:[SYSEXE]AGEN$PARAMS.REPORT;107 24 blocks 12-OCT-2021 11:03:0 Page file calculations: PAGEFILE information: Feedback information. Old value was 4201700, New value is 4201700 Maximum observed usage: 0 Override Information - parameter calculation has been overridden. The calculated value was 3986700. The new value is 4201700. PAGEFILE calculation has been set to current size by user. PAGEFILE will not be modified. The file size is within 10%. Swap file calculations: SWAPFILE information: Feedback information. Old value was 100000, New value is 100000 Maximum observed usage: 0 Override Information - parameter calculation has been overridden. The calculated value was 21400. The new value is 100000. SWAPFILE calculation has been set to current size by user. SWAPFILE will not be modified. The file size is within 10%. Do you wish to keep these changes [Y]?
NOTE: After the differences are displayed, you will need to hit ENTER to get the original AUTOGEN report. Otherwise the final section will not be displayed.