[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference azur::mcc

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.RTitleUserPersonal
Name
DateLines