[Search for users]
[Overall Top Noters]
[List of all Conferences]
[Download this site]
Title: | DECmcc user notes file. Does not replace IPMT. |
Notice: | Use IPMT for problems. Newsletter location in note 6187 |
Moderator: | TAEC::BEROUD |
|
Created: | Mon Aug 21 1989 |
Last Modified: | Wed Jun 04 1997 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 6497 |
Total number of notes: | 27359 |
4730.0. "Network Professor bug fix..." by CTHQ::SCHNEIDER (Rick Schneider DTN 226-5904 LKG1-1 /w2 pole b14) Sat Mar 20 1993 17:40
The NTP_ARCHIVE_AND_CREATE_NEW_DB.COM distributed in the NETWORK PROFESSOR
kit listed in note 3.226 will not use the rollover time parameter. Instead
it uses the previous day.
The convert time used the wrong variable (ANS) which translates to
yesterday...
I have appended a corrected version below...
rick
PS. the kit currently pointed to by note 3.226 does not work with V1.3.0
TEC is working on the fix...
$ GOTO AFTER_HEADER
----------------------------------------------------------------------
NTP_ARCHIVE_AND_CREATE_NEW_DB.COM
Copyright (C) 1989,1991 by Technically Elite Concepts, Hermosa
Beach CA All Rights Reserved
This software is furnished under a license and may be used and
copied only in accordance with the terms of such license
and with the inclusion of the above Copyright Notice. This
software or any other copies thereof may not be provided or
otherwise made available to any other person. No title to and
ownership of the software is hereby transferred.
The information in this software is subject to change without
notice and should not be construed as a commitment by
Technically Elite Concepts.
T. E. Concepts assumes no responsibility for the use or
reliability of its software on equipment which is not supplied
by T.E.Concepts.
Product: NTP - The Network Professor/VMS
Facility: MNT - Database Maintenance Routines
Authors: Russel S. Dietz Oct-1989
David J. Craver Jun-1991
Modification:
V5.0-001 RSD 04/89 Original Code
V5.1-024 DJC 06/91 Modified to remove error on deleting non-
existant files, and added time rollover
V5.1-027 DBL 08/92 Modified to examine free space on NTP_ARCHIVE
disk instead of NTP_DATA
----------------------------------------------------------------------
$ AFTER_HEADER:
$
$ VFY = F$VERIFY(0)
$
$ HERE = F$ENVIRONMENT("DEFAULT")
$ WS = "WRITE SYS$OUTPUT"
$ MON = "SET MESSAGE/FACILITY/IDENTIFICATION/SEVERITY/TEXT
$ MOFF = "SET MESSAGE/NOFACILITY/NOIDENTIFICATION/NOSEVERIY/NOTEXT"
$ ABORT_ON_ERROR = "IF $SEVERITY .EQS. ""5"" THEN GOTO ABORT"
$ NTP_QUERY = "$NTP_EXECUTE:NTP_QUERY"
$ IF F$MODE() .EQS. "BATCH"
$ THEN
$ INQUIRE == "!"
$ ANS == "YES_ANSWER" !dont use YES as it will trans to
$ !yesterday in the f$cvt
$ ENDIF
$
$ SET NOON
$ ON CONTROL_Y THEN GOTO ABORT
$ ON ERROR THEN GOTO ABORT
$ MOFF
$ CALL CHECK_LOGICAL NTP_EXECUTE REPORT
$ ABORT_ON_ERROR
$ CALL CHECK_LOGICAL NTP_DATA REPORT
$ ABORT_ON_ERROR
$ CALL CHECK_LOGICAL NTP_ARCHIVE REPORT
$ ABORT_ON_ERROR
$
$ IF F$TRNLNM("NTP_DATA") .EQS. F$TRNLNM("NTP_ARCHIVE")
$ THEN
$ TYPE SYS$OUTPUT
Sorry the NTP_ARCHIVE logical name should not point to the same
place as the NTP_DATA logical name.
$ VFY = F$VERIFY(VFY)
$ EXIT
$ ENDIF
$
$ TYPE SYS$INPUT
NTP_ARCHIVE_AND_CREATE_NEW_DB [rollover_date_string]
This command file will rename your current database files to
NTP_ARCHIVE:NTPROF%.DAT and will create new NTP_DATA:NTPROF%.DAT
files.
If you specify a rollover date, all data from that date forward
will also be copied into the new database. Specify the date in
the standard VMS time format. If you dont specify a date or the
F$CVTIME() lexical does not understand your time string, no data
will be copied.
$ CALL CHECK_NTP_SHUTDOWN REPORT
$ ABORT_ON_ERROR
$
$ IF P1 .EQS. ""
$ THEN
$ INQUIRE ANS "Rollover Date [None] "
$ RDAT = ANS
$ IF RDAT .EQS. ""
$ THEN
$ RDAT = "NONE"
$ CALL CHECK_DISK_FREESPACE REPORT
$ ABORT_ON_ERROR
$ ENDIF
$ ELSE
$ RDAT = "''P1'"
$ ENDIF
$
$ SET DEFAULT NTP_DATA
$ IF F$SEARCH("NTPNDB%.DAT") .NES. "" THEN DELETE/NOLOG NTPNDB%.DAT;*
$ OPEN/WRITE FOUF NTPNDB1.DAT
$ WRITE FOUF "OPEN NTPROF WRITE"
$
$ XXXX = F$CVTIME(RDAT)
$ IF $STATUS .EQS. "%X00030001"
$ THEN
$ TYPE SYS$INPUT
The mechanism to rollover the data into the new database will
increase the diskspace usage for
1. the database
2. for a temporary file
3. for the new database
The diskspace needed will be proportional to the amount of data
to be rolled over. IF YOU RUN OUT OF DISKSPACE YOUR DATA
CAN BE UNRECOVERABLY CORRUPTED. The safest procedure is to
1. Shutdown the Network Professor
2. Make a backup of the NTP_DATA:NTPROF%.DAT files
3. Then try the rollover, if it fails you can restore
from your backup tape
$ CALL CHECK_DISK_FREESPACE REPORT
$ ABORT_ON_ERROR
$ INQUIRE ANS "Do you wish to continue? [N]"
$ IF F$EXTRACT(0,1,ANS) .NES. "Y" THEN GOTO ABORT
$
$ ROLLOVER = "TRUE"
$ RTIME = 0
$ RTIME[0,6] = F$INTEGER(F$CVTIME(rdat, , "SECOND")) ! corrected changed ANS to RDAT
$ RTIME[6,6] = F$INTEGER(F$CVTIME(rdat, , "MINUTE")) ! corrected changed ANS to RDAT
$ RTIME[12,6] = F$INTEGER(F$CVTIME(rdat, , "HOUR")) ! corrected changed ANS to RDAT
$ RTIME[17,5] = F$INTEGER(F$CVTIME(rdat, , "DAY")) ! corrected changed ANS to RDAT
$ RTIME[22,4] = F$INTEGER(F$CVTIME(rdat, , "MONTH")) ! corrected changed ANS to RDAT
$ RTIME[26,6] = F$INTEGER((F$CVTIME(rdat,, "YEAR")-1988)) ! corrected changed ANS to RDAT
$ WRITE FOUF "PROJECT NDBSUMM FROM STATSUMM USING ALL +"
$ WRITE FOUF "WHERE TIMELONG LE 2130706432 AND +"
$ WRITE FOUF "TIMELONG GE ''RTIME'"
$ WRITE FOUF "PROJECT NDBDATA FROM STATDATA USING ALL +"
$ WRITE FOUF "WHERE TIMELONG LE 2130706432 AND +"
$ WRITE FOUF "TIMELONG GE ''RTIME'"
$ ELSE
$ ROLLOVER = "FALSE"
$ WS "%INFO NO ROLLOVER TIME"
$ ENDIF
$
$ WRITE FOUF "OUTPUT NTPNDB2"
$ WRITE FOUF "UNLOAD NTPROF SCHEMA"
$ WRITE FOUF "UNLOAD NTPROF DATA CUSTINFO"
$ WRITE FOUF "UNLOAD NTPROF DATA SEGINFO"
$ WRITE FOUF "UNLOAD NTPROF DATA CLCRINFO"
$ WRITE FOUF "UNLOAD NTPROF DATA NODEINFO"
$ WRITE FOUF "UNLOAD NTPROF DATA PROTINFO"
$ WRITE FOUF "UNLOAD NTPROF DATA MULTINFO"
$ WRITE FOUF "UNLOAD NTPROF DATA NODEPROT"
$ WRITE FOUF "UNLOAD NTPROF DATA STATCURN"
$ WRITE FOUF "UNLOAD NTPROF DATA ERRINFO"
$ WRITE FOUF "UNLOAD NTPROF DATA ALARMS"
$ WRITE FOUF "UNLOAD NTPROF DATA AUDITTR"
$ IF ROLLOVER .EQS. "TRUE"
$ THEN
$ WRITE FOUF "UNLOAD NTPROF DATA NDBSUMM"
$ WRITE FOUF "UNLOAD NTPROF DATA NDBDATA"
$ WRITE FOUF "OUTPUT NTPNDB3"
$ WRITE FOUF "REMOVE NDBSUMM"
$ WRITE FOUF "REMOVE NDBDATA"
$ ENDIF
$ WRITE FOUF "EXIT"
$ CLOSE FOUF
$ DEFINE/USER SYS$INPUT NTPNDB1.DAT
$ DEFINE/USER SYS$OUTPUT NLA0:
$ RUN NTP_EXECUTE:NTP_QUERY
$
$ IF F$GETDVI("NTP_DATA","DEVNAM") .EQS. F$GETDVI("NTP_ARCHIVE","DEVNAM")
$ THEN
$ RENAME NTP_DATA:NTPROF%.DAT NTP_ARCHIVE:*.*
$ ELSE
$ COPY NTP_DATA:NTPROF%.DAT NTP_ARCHIVE:*.*
$ DELETE/NOLOG NTP_DATA:NTPROF%.DAT;*
$ ENDIF
$
$ DEFINE/USER SYS$INPUT NTPNDB2.DAT
$ DEFINE/USER SYS$OUTPUT NLA0:
$ RUN NTP_EXECUTE:NTP_QUERY
$
$ IF ROLLOVER .EQS. "TRUE"
$ THEN
$ DEFINE/USER SYS$OUTPUT NLA0:
$ RUN NTP_EXECUTE:NTP_QUERY
OPEN NTPROF WRITE
REMOVE STATSUMM
RENAME RELATION NDBSUMM TO STATSUMM
BUILD KEY FOR SEGMENT IN STATSUMM
BUILD KEY FOR TIMELONG IN STATSUMM
REMOVE STATDATA
RENAME RELATION NDBDATA TO STATDATA
BUILD KEY FOR SEGMENT IN STATDATA
BUILD KEY FOR TIMELONG IN STATDATA
EXIT
$ ENDIF
$ GOTO DONE
$ ABORT:
$ WS "WARNING - This procedure did NOT complete successfully"
$ DONE:
$ IF F$TRNLNM("FOUF") .NES. "" THEN CLOSE FOUF
$ IF F$SEARCH("NTPNDB%.DAT") .NES. "" THEN DELETE/NOLOG NTPNDB%.DAT;*
$ MON
$ SET DEF 'HERE'
$ VFY = F$VERIFY(VFY)
$ EXIT
$
$
$ CHECK_LOGICAL:
$ SUBROUTINE
$ IF F$TRNLNM(P1) .NES. "" THEN EXIT 1
$ IF P2 .NES. "" THEN WRITE SYS$OUTPUT "Logical name ''P1' does not exist"
$ EXIT 5
$ ENDSUBROUTINE
$
$ CHECK_NTP_SHUTDOWN:
$ SUBROUTINE
$ STATUS = 1
$ SHOW SYSTEM /OUTPUT=NTPTMP.TMP
$ SEARCH/NOOUTPUT NTPTMP.TMP NTP_COLLECTION,NTP_POSTPROC,NTP_PREDISPLAY /MATCH=OR
$ IF $STATUS .EQS. "%X00000001" THEN STATUS = 5
$ IF F$SEARCH("NTPTMP.TMP") .NES. "" THEN DELETE/NOLOG NTPTMP.TMP;*
$ IF P1 .EQS. "" THEN EXIT 'STATUS'
$ IF STATUS .EQ. 1 THEN EXIT 1
$ WRITE SYS$OUTPUT "The Network Professor is currently running"
$ INQUIRE ANS "Do you want to Shutdown the Network Professor now? [N]"
$ IF F$EXTRACT(0,1,ANS) .NES. "Y" THEN EXIT 5
$ @NTP_COMMAND:NTP_SHUTDOWN
$ EXIT 1
$ ENDSUBROUTINE
$
$ CHECK_DISK_FREESPACE:
$ SUBROUTINE
$ NEED = F$FILE("NTP_DATA:NTPROF1.DAT","ALQ")
$ NEED = NEED + F$FILE("NTP_DATA:NTPROF2.DAT","ALQ")
$ NEED = NEED + F$FILE("NTP_DATA:NTPROF3.DAT","ALQ")
$ FREEB = F$GETDVI("NTP_ARCHIVE","FREEBLOCKS")
$ IF FREEB .LT. NEED
$ THEN
$ WRITE SYS$OUTPUT "Insufficient free space on the archive disk."
$ ENDIF
$ IF P1 .NES. ""
$ THEN
$ WRITE SYS$OUTPUT " NTP DATABASE SIZE : ''NEED'"
$ WRITE SYS$OUTPUT " NTP_ARCHIVE FREEBLOCKS : ''FREEB'"
$ ENDIF
$ IF FREEB .LT. NEED THEN EXIT 5
$ EXIT 1
$ ENDSUBROUTINE
T.R | Title | User | Personal Name | Date | Lines
|
---|