$ ! SYS$MANAGER:SYLOGIN.COM $ SET NOVERIFY $ EXIT ! end of SYLOGIN.COM $ ! NEWSMGR_LOGIN.COM $ $ ! The login.com for the "news manager" user. Just here so that something's $ ! here. This "user" is only used as a context for a single $ ! batch job, NEWSSKIM.COM . $ $ set prot=(s:rwed,o:rwed,g:re,w)/default $! MAKEPATHS.COM $! ------------- $! $! Execute pathalias and pathproc on the UUCP map. $! $! Usage: MAKEPATHS map_directory path_directory [recall] [hostname] [child] $! $! The parameters default to UUCP_PATH_DATA and UUCP_DATA, $! respectively. The latter directory is also used for scratch files. $! $! The third, fourth, and fifth parameters should not be specified - they $! are used to allow this command procedure to call back to itself. $! $! The behavior of this procedure can be defined by the UUCP_MAKEPATHS $! logical name. The definition of this logical name is a string of words $! seperated by slashes. ("/") The words are $! $! INLINE - Run Pathalias and then run PathProc in the same $! process. If this is not specified, then the procedure $! will run PathProc in the current process, and Pathalias $! in a subprocess. $! $! FILES:f - Maximum number of temporary files that PathProc $! is allowed to create. If this is not specified, $! PathProc will use a default number of 10. $! $! NODES:n - Maximum number of hostnames that PathProc is allowed $! to keep in memory. If this is not specified, $! PathProc will use a default number of 0, which means $! that it should do everything in memory. $! $! When PathProc has n NODES in memory, it flushes them to a temporary $! file. An n of 0 tells PathProc that it should try and keep everything $! in memory, flushing to a temporary file only if it runs out of memory. $! After PathProc has created f FILES on disk, it performs a merge operation $! to get back to one file. $! $! If you have a lot of memory and can afford the paging space, do not $! define UUCP_MAKEPATHS. This causes PathProc to run as a parent process, $! with Pathalias as a child. Pathalias'output is piped directly into $! PathProc which does all of its work in memory. This causes no temporary $! files to be created. $! $! This is not however a good idea for everyone. Setting the NODES value $! to something other than 0 will reduce the amount of memory that PathProc $! consumes. This however does cause it to create temporary files. $! $! There is nothing we can do at this time to reduce the amount of memory $! that Pathalias uses. However, we can save paging space by not running $! Pathalias and Pathproc at the same time. Use of INLINE causes the $! Pathalias output to be sent to a temporary file, PathProc will then $! operate on the temporary file. $! $! Some examples: $! Run in one process "/INLINE" $! Run in two processes but only allow 1000 nodes "/NODES:1000" $! Run in one process but only allow 1000 nodes "/INLINE/NODES:1000" $! Run in one process, only allow 1000 nodes, but $! allow more than 10 temp files "/INLINE/NODES:1000/FILES:100" $! $!---------- $! The procedure begins.... $! $! Command symbols and overrides for user replacements $! $ define = "" $ delete = "" $ purge = "" $ rename = "" $ pathalias = "$uucp_bin:pathalias" $ pathproc = "$uucp_bin:pathproc" $! $! Jump ahead on a call back $! $ if (p3 .nes. "") then goto $ $! $! Make sure that we have parameters $! $ if (p1 .eqs. "") then p1 = "uucp_path_data:" $ if (p2 .eqs. "") then p2 = "uucp_data:" $ $ host = f$trnlnm("UUCP_HOST_NAME","LNM$SYSTEM_TABLE",,"EXECUTIVE") $ if (host .eqs. "") then inquire/nopun host "Host name? " $! $! Set default values $! $ two_process = "TRUE" $ files = "DEFAULT" $ nodes = "DEFAULT" $! $! See if UUCP_MAKEPATHS is defined and process if it is $! $ switches = f$trnlnm("UUCP_MAKEPATHS") $ if switches .eqs. "" then goto no_more_switches $no_more_switches: $! $! $! $! Create the callback command line $! $ callback = "@" + F$environment("PROCEDURE") + " " + p1 + " " + p2 + - " run_pathalias " + host $ $ if two_process then callback = callback + " TRUE" $ if .not. two_process then callback = callback + " FALSE" $ $! $! Create the switch list for PathProc $! $ ppquals = "" $ if files .nes. "DEFAULT" then ppquals = ppquals + "-f " + files + " " $ if nodes .nes. "DEFAULT" then ppquals = ppquals + "-n " + nodes + " " $ if two_process then ppquals = ppquals + "-p ""@DISK$WORK0:[UUCP.BIN]MAKEPATHS.COM;20 uucp_path_data: uucp_data: run_pathalias simpact TRUE""" $ if .not. two_process then ppquals = ppquals + "-i " + p2 + - "pathalias.out" $ $! $! If we are running in one process, invoke Pathalias now $! $ if .not. two_process then @DISK$WORK0:[UUCP.BIN]MAKEPATHS.COM;20 uucp_path_data: uucp_data: run_pathalias simpact TRUE $! $! Now, run PathProc. If we are in two process mode, the ppquals contains $! the information for the subprocess. $! $ pathproc -o uucp_data:paths.new -p "@DISK$WORK0:[UUCP.BIN]MAKEPATHS.COM;20 uucp_path_data: uucp_data: run_pathalias simpact TRUE" $! MAKEPATHS.COM $! ------------- $! $! Execute pathalias and pathproc on the UUCP map. $! $! Usage: MAKEPATHS map_directory path_directory [recall] [hostname] [child] $! $! The parameters default to UUCP_PATH_DATA and UUCP_DATA, $! respectively. The latter directory is also used for scratch files. $! $! The third, fourth, and fifth parameters should not be specified - they $! are used to allow this command procedure to call back to itself. $! $! The behavior of this procedure can be defined by the UUCP_MAKEPATHS $! logical name. The definition of this logical name is a string of words $! seperated by slashes. ("/") The words are $! $! INLINE - Run Pathalias and then run PathProc in the same $! process. If this is not specified, then the procedure $! will run PathProc in the current process, and Pathalias $! in a subprocess. $! $! FILES:f - Maximum number of temporary files that PathProc $! is allowed to create. If this is not specified, $! PathProc will use a default number of 10. $! $! NODES:n - Maximum number of hostnames that PathProc is allowed $! to keep in memory. If this is not specified, $! PathProc will use a default number of 0, which means $! that it should do everything in memory. $! $! When PathProc has n NODES in memory, it flushes them to a temporary $! file. An n of 0 tells PathProc that it should try and keep everything $! in memory, flushing to a temporary file only if it runs out of memory. $! After PathProc has created f FILES on disk, it performs a merge operation $! to get back to one file. $! $! If you have a lot of memory and can afford the paging space, do not $! define UUCP_MAKEPATHS. This causes PathProc to run as a parent process, $! with Pathalias as a child. Pathalias'output is piped directly into $! PathProc which does all of its work in memory. This causes no temporary $! files to be created. $! $! This is not however a good idea for everyone. Setting the NODES value $! to something other than 0 will reduce the amount of memory that PathProc $! consumes. This however does cause it to create temporary files. $! $! There is nothing we can do at this time to reduce the amount of memory $! that Pathalias uses. However, we can save paging space by not running $! Pathalias and Pathproc at the same time. Use of INLINE causes the $! Pathalias output to be sent to a temporary file, PathProc will then $! operate on the temporary file. $! $! Some examples: $! Run in one process "/INLINE" $! Run in two processes but only allow 1000 nodes "/NODES:1000" $! Run in one process but only allow 1000 nodes "/INLINE/NODES:1000" $! Run in one process, only allow 1000 nodes, but $! allow more than 10 temp files "/INLINE/NODES:1000/FILES:100" $! $!---------- $! The procedure begins.... $! $! Command symbols and overrides for user replacements $! $ define = "" $ delete = "" $ purge = "" $ rename = "" $ pathalias = "$uucp_bin:pathalias" $ pathproc = "$uucp_bin:pathproc" $! $! Jump ahead on a call back $! $ if (p3 .nes. "") then goto RUN_PATHALIAS $run_pathalias: $ $ if p5 $ THEN parent = "%X" + f$getjpi(0,"OWNER") $ mailbox = "FSPAWNMBX_" + f$fao("!ZL",%X00002130) + ":" $ define/user sys$output FSPAWNMBX_8496: $ else define/user sys$output UUCP_DATA:pathalias.out $! $! Split SYS$ERROR to somewhere other than where SYS$OUTPUT is going. (Else, $! writes to SYS$ERROR will end up in the path data :-() $! $ define/user sys$error vmsnet_log:pathalias.log $! $! Generate routing data for this host $! $ pathalias -fi -l SIMPACT UUCP_PATH_DATA:d.* UUCP_PATH_DATA:u.* $ exit $! $! If all went well, remove the old copy and make the path file readable $! $ set noon $ rename uucp_data:paths.new uucp_data:paths. $ purge uucp_data:paths. $ set file uucp_data:paths./prot=(g:r,w:r) $! $! Finally, remove the temp file if we created one. $! $ if .not. two_process then delete uucp_data:pathalias.out.* $ exit NEWSMGR job terminated at 17-AUG-1990 18:51:55.79 Accounting information: Buffered I/O count: 21593 Peak working set size: 4078 Direct I/O count: 3922 Peak page file size: 7152 Page faults: 67105 Mounted volumes: 0 Charged CPU time: 0 00:03:32.94 Elapsed time: 0 00:11:24.65