1 SAVE Saves the current set of active services as a set of commands in a command procedure. You can then invoke the command procedure to reproduce the current services when you reboot the system. Format SAVE [procedureName] 2 Parameters procedureName Creates a command procedure that restores the current server state. The procedure name is the OpenVMS file name of the command procedure to be created. If a file type is not supplied, the type defaults to .COM. The default procedure name is ESS$LAD_SERVICES.COM. 2 Examples 1.$SHOW SERVICES Service Name [Service Class] Device or File -------------------- --------------- -------------- BASELEVEL_A [ODS-2] _INFOS$LDA1: BASELEVEL_B [ODS-2] _INFOS$LDA2: BASELEVEL_C [ODS-2] _INFOS$LDA3: BASELEVEL_D [ODS-2] _INFOS$LDA4: FIELD_TEST_BASELEVEL [ODS-2] _INFOS$LDA2: CURRENT_BASELEVEL [ODS-2] _INFOS$LDA3: EXPERIMENTAL_BASELEVEL [ODS-2] _INFOS$LDA4: %INFOSRVR-I-FOUND, 7 services found. The SHOW SERVICES command in this example displays the services that are currently offered by the server. There is a set of software baselevels, each on its own logical disk and served to the LAN. The baselevels are labeled a through d, but, in addition, names help users so that they do not need to remember the corresponding letters. Note that devices LDA2, LDA3, and LDA4 have two services assigned to each one. 2.$SAVE BASELEVELS The following example has been annotated. The individual numbers that appear in the example correspond to the numbered explanations that follow the example. $! Created by the OpenVMS InfoServer SAVE command on 22-APR-2005 14:34:02.48 $ Set NoOn $ Infoserver := $ESS$INFOSERVER $! $! The comment for each service includes the current device name. $! $!*************************************************************** $! BASELEVEL_A [ODS_2] - _BILBO$LDA1: 1 $!*************************************************************** $ LD Connect/Symbol _BILBO$DKB0:[DISKS]BASELEVEL_A.DSK;1 2 $ LD_UNIT_1 := LDA'LD_UNIT': 3 $ If $STATUS Then Mount/System/NoWrite 'LD_UNIT_1' BASELEVELA 4 $ INFOSERVER Create Service BASELEVEL_A 'LD_UNIT_1' - 5 /Class=ODS_2/Readers=1000/NoWriters - /Readahead/NoReadbehind - /Rating=Dynamic $!*************************************************************** $! BASELEVEL_B [ODS_2] - _BILBO$LDA2: $!*************************************************************** $ LD Connect/Symbol _BILBO$DKB0:[DISKS]BASELEVEL_B.DSK;1 $ LD_UNIT_2 := LDA'LD_UNIT': $ If $STATUS Then Mount/System/NoWrite 'LD_UNIT_2' BASELEVELB $ INFOSERVER Create Service BASELEVEL_B 'LD_UNIT_2' - /Class=ODS_2/Readers=1000/NoWriters - /Readahead/NoReadbehind - /Rating=Dynamic $!*************************************************************** $! BASELEVEL_C [ODS_2] - _BILBO$LDA3: $!*************************************************************** $ LD Connect/Symbol _BILBO$DKB0:[DISKS]BASELEVEL_C.DSK;1 $ LD_UNIT_3 := LDA'LD_UNIT': $ If $STATUS Then Mount/System/NoWrite 'LD_UNIT_3' BASELEVELC $ INFOSERVER Create Service BASELEVEL_C 'LD_UNIT_3' - /Class=ODS_2/Readers=1000/NoWriters - /Readahead/NoReadbehind - /Rating=Dynamic $!*************************************************************** $! BASELEVEL_D [ODS_2] - _BILBO$LDA4: $!*************************************************************** $ LD Connect/Symbol _BILBO$DKB0:[DISKS]BASELEVEL_D.DSK;1 $ LD_UNIT_4 := LDA'LD_UNIT': $ If $STATUS Then Mount/System/NoWrite 'LD_UNIT_4' BASELEVELD $ INFOSERVER Create Service BASELEVEL_D 'LD_UNIT_4' - /Class=ODS_2/Readers=1000/NoWriters - /Readahead/NoReadbehind - /Rating=Dynamic - /Encoded_Password=481C6B9081E742C2 ! Invalid if service name changes 6 $!*************************************************************** $! FIELD_TEST_BASELEVEL [ODS_2] - _BILBO$LDA2: $!*************************************************************** $ INFOSERVER Create Service FIELD_TEST_BASELEVEL 'LD_UNIT_2' - 7 /Class=ODS_2/Readers=1000/NoWriters - /Readahead/NoReadbehind - /Rating=Dynamic $!*************************************************************** $ INFOSERVER Create Service CURRENT_BASELEVEL 'LD_UNIT_3' - /Class=ODS_2/Readers=1000/NoWriters - /Readahead/NoReadbehind - /Rating=Dynamic $!*************************************************************** $! EXPERIMENTAL_BASELEVEL [ODS_2] - _BILBO$LDA4: $!*************************************************************** $ INFOSERVER Create Service EXPERIMENTAL_BASELEVEL 'LD_UNIT_4' - /Class=ODS_2/Readers=1000/NoWriters - /Readahead/NoReadbehind - /Rating=Dynamic - /Encoded_Password=01F1D7374C0B81EC ! Invalid if service name changes 8 $ Exit The numbers in the example correspond to the numbers of the following explanations. 1 The comment for each device contains the name of the device at the time the SAVE command was executed. LD devices are pseudo disk devices and might change unit numbers every time they are connected. 2 This command connects an LD device to the container file and assigns the unit number to the DCL symbol LD_UNIT. 3 A unique symbol is created for each device assigned to a container file. 4 This command mounts the device specifying the label of the volume that the device had at the time of the SAVE command. 5 The InfoServer service is recreated for the device. 6 The experimental baselevel services are password-protected. For security, the password is stored in the command procedure in pre-hashed format. Note that both services have the same password, but the hash is different. 7 Because FIELD_TEST_BASELEVEL and BASELEVEL_B point to the same LD device, no attempt is made to create another device, and the correct unit (symbol LD_UNIT_2) is used to refer to the previously created unit. 8 See #6.