| Hi all
I use the following command procedure, mainly inhouse or after
PSI-mailed to customer site. Have fun.
Regards, Peter
$!======================================================================!
$! Program: A1LNKDRV_COPY_FILES.COM !
$!----------------------------------------------------------------------!
$! Author: Multivendor Customer Services / Enduser Services !
$! DEC Digital Equipment Corporation AG, Switzerland !
$! System: OpenVMS VAX V5.x, ALL-IN-1 V2.4, V3.0, V3.1 !
$!----------------------------------------------------------------------!
$! Purpose: Used after a relink of ALL-IN-1 to copy the images to !
$! their live locations. We assume the images are stored !
$! in OA$BUILD_LLV (as Management Guide 2-12), which !
$! points to the LLV-directory of the default language. !
$! The logicals and file locations have changed a bit from !
$! version to version: !
$! !
$! Files V2.4 V3.0 V3.1 !
$! -------------- -------------- ---------------- ---------------- !
$! @A1LNKDRV.COM/ !
$! SITELINKnn.COM OA$BUILD_SHARE OA$BUILD_LLV OA$BUILD_LLV !
$! !
$! *.EXE OA$LIB_SHARE OA$LIB_SHARE OA$EXE_SHARE !
$! !
$! Logicals V2.4 V3.0 V3.1 !
$! -------------- -------------- ----------------- ---------------- !
$! OA$BUILD_SHARE [.SOURCES] [.SOURCES_SHARE] OA$BUILD_SHARE_ARCH !
$! OA$BUILD_SHARE_IND !
$! !
$! OA$BUILD_LLV - [.SOURCES_GERMAN] OA$BUILD_LLV_ARCH !
$! OA$BUILD_LLV_IND !
$! !
$! OA$LIB_SHARE [.LIB_SHARE] [.LIB_SHARE] [.LIB_SHARE] !
$! OA$EXE_SHARE !
$! !
$! OA$EXE_SHARE - - [.OA$EXE_VAX_SHARE] !
$! !
$!----------------------------------------------------------------------!
$! Date: Action: Author: !
$! 08-APR-1994 Added SET TIMEOUT for all sysman comm. Peter Kurth !
$! 17-MAR-1994 Changes for V3.1 Peter Kurth !
$! 18-FEB-1994 Privileg and GenericTarget fix Peter Kurth !
$! 19-AUG-1993 Added SET TIMEOUT Rolf Burkhalter !
$! 02-AUG-1993 Modified to run on all cluster members Rolf Burkhalter !
$! 17-FEB-1993 Modified text and added f$search Peter Kurth !
$! 02-FEB-1993 Created Peter Kurth !
$!======================================================================!
$
$ set noon
$ ws = "WRITE SYS$OUTPUT"
$
$ TYPE SYS$INPUT
After a relink of ALL-IN-1 IOS, this procedure copies the created
images (only, if the image exists) to their live locations, sets
file protection and owner and replaces the image in memory (on
all cluster members where OA$MAIN is installed).
This procedure works for a single or a multi-lingual language
system and handles cluster-wide OA$FORMATTER-queues.
Enduser Services, 18-MAR-1994
$
$ INQUIRE Answer "Do you want to continue (Y/[N])"
$ ws ""
$ IF Answer .NES. "Y" THEN GOTO NotContinue
$
$
$!----------------------------------------------------------------------!
$! Check privileges. !
$
$ ws "Checking the required privileges ..."
$ WS ""
$ IF .NOT. f$privilege ("OPER,CMKRNL") THEN GOTO NoPrivileges
$
$
$!----------------------------------------------------------------------!
$! Find all cluster members where the image OA$MAIN.EXE is installed. !
$
$ ws "Finding cluster members, where ALL-IN-1 is running ..."
$ ws ""
$ install_nodes = ""
$ timeout_nodes = ""
$ exec_node = f$getsysi("NODENAME")
$ create /name_table /parent=LNM$SYSTEM_DIRECTORY SYSMAN$NODE_TABLE
$ define /nolog exec_node 'exec_node' /table=SYSMAN$NODE_TABLE
$ run sys$system:sysman
SET ENVIRONMENT/CLUSTER/NODE=exec_node
SET TIMEOUT 00:00:15
DO /OUTPUT=OUT_NODES.TMP INSTALL LIST OA$LIB:OA$MAIN.EXE
EXIT
$ open/read temp_file out_nodes.tmp
$ read_node:
$ read/end_of_file=found_images temp_file record
$ IF f$locate("command execution on node",record) .NE. f$length(record) -
THEN node = f$element(5," ",record)
$ ws " searching on node ''node'"
$ read/end_of_file=found_images temp_file record1
$ read/end_of_file=found_images temp_file record2
$ IF f$locate("OA$MAIN",record2) .NE. f$length(record2) -
THEN install_nodes = install_nodes + "," + node
$ IF f$locate("SMI-E-TIMEOUT",record2) .NE. f$length(record2) -
THEN timeout_nodes = timeout_nodes + "," + node
$ GOTO read_node
$
$ found_images:
$ close temp_file
$ delete out_nodes.tmp;*
$ IF f$length(timeout_nodes) .NE. 0
$ THEN
$ timeout_nodes = f$extract(1,f$length(timeout_nodes)-1,timeout_nodes)
$ GOTO Timeout_Error
$ ENDIF
$ IF install_nodes .NES. ""
$ THEN
$ install_nodes = f$extract(1,f$length(install_nodes)-1,install_nodes)
$ ELSE
$ install_nodes = exec_node
$ ENDIF
$ define /nolog install_nodes 'install_nodes' /table=SYSMAN$NODE_TABLE
$ ws ""
$ ws "ALL-IN-1 runs on the following node(s): ''install_nodes'"
$ ws ""
$
$
$!----------------------------------------------------------------------!
$! Get version. !
$
$ open /read /share /error=Cnf_Error A1Conf OA$DATA_SHARE:A1CONFIG.DAT
$ read /nolock A1Conf BaseRecord
$ A1Version = f$extract ("16","3",BaseRecord)
$ close A1Conf
$ ws "You are running ALL-IN-1 Version ''A1Version'."
$ ws ""
$
$
$!----------------------------------------------------------------------!
$! Set logicals (when running version V2.4 or V3.0) which are required !
$! in the procedure. !
$
$ IF (A1Version .EQS. "2.4") .OR. (A1Version .EQS. "3.0")
$ THEN
$ ! Set the logical OA$EXE_SHARE cluster-wide (is needed in
$ ! order to install the images on all nodes).
$ EXELogical = f$trnlnm ("OA$LIB_SHARE")
$ open/write def_log sys$common:[sysmgr]def_log.tmp
$ write def_log "$ define /exec /system OA$EXE_SHARE ''EXELogical'"
$ write def_log "$ exit"
$ close def_log
$ run sys$system:sysman
SET ENVIRONMENT/NODE=install_nodes
SET TIMEOUT 00:00:15
DO @sys$common:[sysmgr]def_log.tmp
EXIT
$ delete sys$common:[sysmgr]def_log.tmp;*
$ IF (A1Version .EQS. "2.4")
$ THEN
$ LLVLogical = f$trnlnm ("OA$BUILD_SHARE")
$ define /exec /system OA$BUILD_LLV 'LLVLogical
$ ENDIF
$ ELSE
$ IF (A1Version .NES. "3.1") THEN GOTO A1VersionError
$ ENDIF
$
$
$!----------------------------------------------------------------------!
$! OA$MAIN.EXE !
$
$ IF f$search("OA$BUILD_LLV:OA$MAIN.EXE") .NES. ""
$ THEN
$ copy OA$BUILD_LLV:OA$MAIN.EXE OA$EXE_SHARE
$ set file /owner=parent OA$EXE_SHARE:OA$MAIN.EXE
$ set prot=(S:RWED,O:RWED,G:RE,W:RE) OA$EXE_SHARE:OA$MAIN.EXE
$ dire/date/size/sec/notrai OA$EXE_SHARE:OA$MAIN.EXE
$ run sys$system:sysman
SET ENVIRONMENT/NODE=install_nodes
SET TIMEOUT 00:00:15
DO INSTALL REPLACE OA$EXE_SHARE:OA$MAIN.EXE
EXIT
$ ENDIF
$
$
$!----------------------------------------------------------------------!
$! MAILCOUNT.EXE !
$
$ IF f$search("OA$BUILD_LLV:MAILCOUNT.EXE") .NES. ""
$ THEN
$ copy OA$BUILD_LLV:MAILCOUNT.EXE OA$EXE_SHARE
$ set file /owner=parent OA$EXE_SHARE:MAILCOUNT.EXE
$ set prot=(S:RWED,O:RWED,G:RE,W:RE) OA$EXE_SHARE:MAILCOUNT.EXE
$ dire/date/size/sec/notrai OA$EXE_SHARE:MAILCOUNT.EXE
$ run sys$system:sysman
SET ENVIRONMENT/NODE=install_nodes
SET TIMEOUT 00:00:15
DO INSTALL REPLACE OA$EXE_SHARE:MAILCOUNT.EXE
EXIT
$ ENDIF
$
$
$!----------------------------------------------------------------------!
$! OA$SUBMIT.EXE !
$
$ IF f$search("OA$BUILD_LLV:OA$SUBMIT.EXE") .NES. ""
$ THEN
$ copy OA$BUILD_LLV:OA$SUBMIT.EXE OA$EXE_SHARE
$ set file /owner=parent OA$EXE_SHARE:OA$SUBMIT.EXE
$ set prot=(S:RWED,O:RWED,G,W) OA$EXE_SHARE:OA$SUBMIT.EXE
$ set acl /acl=((IDENTIFIER=OA$USER_QM,ACCESS=READ+EXECUTE),-
(IDENTIFIER=OA$ADMIN,ACCESS=READ+EXECUTE)) -
OA$EXE_SHARE:OA$SUBMIT.EXE
$ dire/date/size/sec/notrai OA$EXE_SHARE:OA$SUBMIT.EXE
$ run sys$system:sysman
SET ENVIRONMENT/NODE=install_nodes
SET TIMEOUT 00:00:15
DO INSTALL REPLACE OA$EXE_SHARE:OA$SUBMIT.EXE
EXIT
$ ENDIF
$
$
$!----------------------------------------------------------------------!
$! OA$LLVlang.EXE !
$
$ LLV_Loop:
$ LLV_Image = f$search("OA$BUILD_LLV:OA$LLV*.EXE")
$ IF LLV_Image .EQS. "" THEN GOTO EndLLV
$ LLV_Image = f$element(0,";",f$element(1,"]",LLV_Image))
$ copy OA$BUILD_LLV:'LLV_Image' SYS$COMMON:[SYSLIB]
$ set file /owner=SYSTEM SYS$COMMON:[SYSLIB]'LLV_Image'
$ set prot=(S:RWED,O:RWED,G:RE,W:RE) SYS$COMMON:[SYSLIB]'LLV_Image'
$ dire/date/size/sec/notrai SYS$COMMON:[SYSLIB]'LLV_Image'
$ open/write sysman_do sysman_do.tmp
$ write sysman_do "$ run sys$system:sysman"
$ write sysman_do "SET ENVIRONMENT/NODE=install_nodes"
write sysman_do "SET TIMEOUT 00:00:15"
$ write sysman_do "DO INSTALL REPLACE SYS$COMMON:[SYSLIB]''LLV_Image'"
$ write sysman_do "EXIT"
$ close sysman_do
$ @sysman_do.tmp
$ delete sysman_do.tmp;*
$ GOTO LLV_Loop
$ EndLLV:
$
$
$!----------------------------------------------------------------------!
$! OA$FORMATTER.EXE !
$
$ IF f$search("OA$BUILD_LLV:OA$FORMATTER.EXE") .NES. ""
$ THEN
$ copy OA$BUILD_LLV:OA$FORMATTER.EXE SYS$COMMON:[SYSEXE]
$ set file /owner=SYSTEM SYS$COMMON:[SYSEXE]OA$FORMATTER.EXE
$ set prot=(S:RWED,O:RWED,G:RE,W:RE) SYS$COMMON:[SYSEXE]OA$FORMATTER.EXE
$ dire/date/size/sec/notrai SYS$COMMON:[SYSEXE]OA$FORMATTER.EXE
$ GenericTarget = -
f$getqui("DISPLAY_QUEUE","GENERIC_TARGET","OA$FORMATTER")
$ IF GenericTarget .EQS. "" THEN GenericTarget = "OA$FORMATTER"
$ I = 0
$ ExecStopLoop:
$ ExecQueue = f$element(I,",",GenericTarget)
$ IF ExecQueue .eqs. "," THEN GOTO EndExecStop
$ I = I + 1
$ stop /queue /reset 'ExecQueue'
$ GOTO ExecStopLoop
$ EndExecStop:
$ show queue /all *OA$FORMATTER*
$ wait 00:00:10
$ I = 0
$ ExecStartLoop:
$ ExecQueue = f$element(I,",",GenericTarget)
$ IF ExecQueue .eqs. "," THEN GOTO EndExecStart
$ I = I + 1
$ start /queue 'ExecQueue'
$ GOTO ExecStartLoop
$ EndExecStart:
$ ENDIF
$
$
$!----------------------------------------------------------------------!
$! TMSV.EXE !
$
$ IF f$search("OA$BUILD_LLV:TMSV.EXE") .NES. ""
$ THEN
$ copy OA$BUILD_LLV:TMSV.EXE OA$EXE_SHARE
$ set file /owner=parent OA$EXE_SHARE:TMSV.EXE
$ set prot=(S:RWED,O:RWED,G:RE,W:RE) OA$EXE_SHARE:TMSV.EXE
$ dire/date/size/sec/notrai OA$EXE_SHARE:TMSV.EXE
$ ENDIF
$
$
$!----------------------------------------------------------------------!
$! File Cabinet Server images (new V3.0). !
$
$ IF f$search("OA$BUILD_LLV:OAFC$SERVER.EXE") .NES. ""
$ THEN
$ copy OA$BUILD_LLV:OAFC$SERVER.EXE SYS$COMMON:[SYSEXE]
$ set file /owner=SYSTEM SYS$COMMON:[SYSEXE]OAFC$SERVER.EXE
$ set prot=(S:RWED,O:RWED,G:RWED,W:RE) SYS$COMMON:[SYSEXE]OAFC$SERVER.EXE
$ dire/date/size/sec/notrai SYS$COMMON:[SYSEXE]OAFC$SERVER.EXE
$ ENDIF
$
$ IF f$search("OA$BUILD_LLV:OAFC$MTS_PRIV_SHR.EXE") .NES. ""
$ THEN
$ copy OA$BUILD_LLV:OAFC$MTS_PRIV_SHR.EXE SYS$COMMON:[SYSLIB]
$ set file /owner=SYSTEM SYS$COMMON:[SYSLIB]OAFC$MTS_PRIV_SHR.EXE
$ set prot=(S:RWED,O:RWED,G:RWED,W:RE) SYS$COMMON:[SYSLIB]OAFC$MTS_PRIV_SHR.EXE
$ dire/date/size/sec/notrai SYS$COMMON:[SYSLIB]OAFC$MTS_PRIV_SHR.EXE
$ run sys$system:sysman
SET ENVIRONMENT/NODE=install_nodes
SET TIMEOUT 00:00:15
DO INSTALL REPLACE SYS$COMMON:[SYSLIB]OAFC$MTS_PRIV_SHR.EXE
EXIT
$ ENDIF
$
$
$!----------------------------------------------------------------------!
$! Impersonation Services images (new V3.0). !
$
$ IF f$search("OA$BUILD_LLV:IMP$IMPSHR.EXE") .NES. ""
$ THEN
$ copy OA$BUILD_LLV:IMP$IMPSHR.EXE SYS$COMMON:[SYSLIB]
$ set file /owner=SYSTEM SYS$COMMON:[SYSLIB]IMP$IMPSHR.EXE
$ set prot=(S:RWED,O:RWED,G:RWED,W:RE) SYS$COMMON:[SYSLIB]IMP$IMPSHR.EXE
$ dire/date/size/sec/notrai SYS$COMMON:[SYSLIB]IMP$IMPSHR.EXE
$ run sys$system:sysman
SET ENVIRONMENT/NODE=install_nodes
SET TIMEOUT 00:00:15
DO INSTALL REPLACE SYS$COMMON:[SYSLIB]IMP$IMPSHR.EXE
EXIT
$ ENDIF
$
$ IF f$search("OA$BUILD_LLV:IMP$IMPSHRP.EXE") .NES. ""
$ THEN
$ copy OA$BUILD_LLV:IMP$IMPSHRP.EXE SYS$COMMON:[SYSLIB]
$ set file /owner=SYSTEM SYS$COMMON:[SYSLIB]IMP$IMPSHRP.EXE
$ set prot=(S:RWED,O:RWED,G:RWED,W:RE) SYS$COMMON:[SYSLIB]IMP$IMPSHRP.EXE
$ dire/date/size/sec/notrai SYS$COMMON:[SYSLIB]IMP$IMPSHRP.EXE
$ run sys$system:sysman
SET ENVIRONMENT/NODE=install_nodes
SET TIMEOUT 00:00:15
DO INSTALL REPLACE SYS$COMMON:[SYSLIB]IMP$IMPSHRP.EXE
EXIT
$ ENDIF
$
$
$!----------------------------------------------------------------------!
$! OA$CHECKMAIL.EXE (new V3.1) !
$
$ IF f$search("OA$BUILD_LLV:OA$CHECKMAIL.EXE") .NES. ""
$ THEN
$ copy OA$BUILD_LLV:OA$CHECKMAIL.EXE OA$EXE_SHARE
$ set file /owner=parent OA$EXE_SHARE:OA$CHECKMAIL.EXE
$ set prot=(S:RWED,O:RWED,G,W:E) OA$EXE_SHARE:OA$CHECKMAIL.EXE
$ dire/date/size/sec/notrai OA$EXE_SHARE:OA$CHECKMAIL.EXE
$ run sys$system:sysman
SET ENVIRONMENT/NODE=install_nodes
SET TIMEOUT 00:00:15
DO INSTALL REPLACE OA$EXE_SHARE:OA$CHECKMAIL.EXE
EXIT
$ ENDIF
$
$
$!----------------------------------------------------------------------!
$! Clean up. !
$
$ type sys$input
***************************** Note *******************************
You should delete the following working copies of the images in
OA$BUILD_LLV. Also purge the images in the target area afterwards
in order to save disk space:
$
$ dire/date/size OA$BUILD_LLV:*.EXE
$
$ GOTO NotContinue
$
$
$!----------------------------------------------------------------------!
$! Error handling. !
$
$ NoPrivileges:
$ ws "ERROR: The current process needs OPER,CMKRNL privileges."
$ GOTO NotContinue
$
$ A1VersionError:
$ ws "ERROR: This procedures runs only on ALL-IN-1 IOS V2.4, V3.0, V3.1"
$ GOTO NotContinue
$
$ Timeout_Error:
$ ws "ERROR: There was a timeout problem with the SYSMAN Utility on the"
$ ws " following node(s): ''timeout_nodes'"
$ GOTO NotContinue
$
$
$!----------------------------------------------------------------------!
$ NotContinue:
$ set on
$ EXIT
|