|  | 	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
 |