*DECK NP$SPRT *IF,DEF,STAT USETEXT NP$STAT *ENDIF PROC NP$SPRT; *IF,DEF,IMS # *1DC NP$SPRT * 1. PROC NAME AUTHOR DATE * NP$SPRT E. GEE 86/01/27 * * 2. FUNCTIONAL DESCRIPTION * DUMPS STATISTICS TO ZZZZZSN AND THEN CLOSES ZZZZZSN. * * 3. METHOD USED * NP$SPRT CALCULATES THE USED CPU TIME. IT WRITES HEADERS TO * ZZZZZSN AND CALLS NP$SN TO PRINT OUT THE STAT ARRAY. * * 4. ENTRY CONDITONS * NP$SPRT MAY BE CALLED FROM NETSTC OR NETOFF. * SN$WRAT = ERROR CODE IF I/O ERROR HAS OCCURRED ON ZZZZZSN FILE * * 5. EXIT CONDITIONS * PRNT - MUST BE FALSE * SN$WRAT - ABNORMAL TERMINATION CODE FROM I/O ERROR ON ZZZZZSN * * 6. COMDECKS CALLED AND SYMPL TEXTS USED. * NP$CRT CONTROL DATA COPYRIGHT DECK * NP$STAT AIP STATISTICS TABLE * * 7. PROCEDURES CALLED * NP$MSG ISSUE DAYFILE MESSAGE * NP$PIOE PROCESS I/O ERROR ON STATISTICS FILE * NP$SN CONVERT AIP STAT FROM INTEGER TO DECIMAL * DISPLAY AND WRITE TO STATISTICS FILE * NP$TIM GET SYSTEM TIME * NP$WRTR WRITE END OF RECORD TO FILE * NP$WRTW WRITE WORDS TO CIO BUFFER FROM WSA * NP$XCDD CONVERT TO DECIMAL DISPLAY * * 8. DAYFILE/DIAGNOSTIC MESSAGES * NONE. * # *ENDIF BEGIN *CALL NP$CRT *IF,DEF,STAT # # # ROUTINE CALLED # # # XREF BEGIN PROC NP$SN; # OUTPUTS LINE TO ZZZZZSN # PROC NP$MSG; # ISSUE DAYFILE MESSAGE # PROC NP$PIOE; # PROCESS I/O ERROR ON DISK FILE# PROC NP$TIM; # GETS ACCUMULATED CPU TIME # PROC NP$WRTR; # WRITES AN EOR TO OUTPUT FILE # PROC NP$WRTW; # WRITES A LINE TO OUTPUT FILE # FUNC NP$XCDD C(10); # CONVERT INT TO DEC DISPLAY # END # # # LOCAL VARIABLES # # # ITEM CHARWD C(10), I I, # TEMPORARY INDEX # SPRTAT B; # TRUE IF NP$SPRT DETECT I/O ERR# ARRAY HEADING P(6); ITEM HDNG$CC C(0,0,10)=["0 "], HDNG$FMT1 C(1,0,16)=["CPU TIME USED: "], CPU$TIME C(2,36,10), HDNG$FMT2 C(3,36,1)=["."], CPU$TIMA C(3,42,3), HDNG$FMT3 C(4,0,4)=[" SEC"], HDNG$FMT4 I(5,0,60)=[0]; ARRAY HEADINGA P(7); ITEM HDNG$CCA C(0,0,10)=["0 "], HDNG$FMT1A C(1,0,10)=["NUMBER OF "], HDNG$MSG C(2,0,40), HDNG$FMT2A I(6,0,60)=[0]; ARRAY STATMSG [0:7] P(5); ITEM STATMSGT U(0,0,60)=[TYPE"GDM", TYPE"GMM", TYPE"GSM", TYPE"GMD", TYPE"GSD", TYPE"GMWD", TYPE"GSWD", TYPE"GMR"], STATMSGS C(1,0,40)=["DISCARDED UPLINE MESSAGES", "GET DATA MSG WORKLIST TRANSFERS", "GET SUP MSG WORKLIST TRANSFERS", "DATA MSGS TRANSFERRED TO AIP DATA QUEUE", "SUP MSGS TRANSFERRED TO AIP SM QUEUE", "DATA WDS TRANSFERRED TO AIP DATA QUEUE", "SUP MSG WDS TRANSFERRED TO AIP SM QUEUE", "TIMES AIP DATA QUEUE RESET"]; CONTROL EJECT; #**********************************************************************# # # # NP$SPRT EXECUTION BEGINS HERE # # # SPRTAT = FALSE; # INIT I/O ERR DETECTED FLAG # NP$TIM(ST$TIM[1]); # GET ACCUMULATED CPU TIME # IF CPMLSECS[0] GR CPMLSECS[1] THEN BEGIN CPMLSECS[1] = CPMLSECS[1] + 1000; CPSECS[1] = CPSECS[1] - 1; END CHARWD = NP$XCDD(CPSECS[1] - CPSECS[0]); CPU$TIME = CHARWD; CHARWD = NP$XCDD(CPMLSECS[1] - CPMLSECS[0]); CPU$TIMA = C<7,3> CHARWD; IF C<0,1>CPU$TIMA EQ " " # ZERO LEADING BLANKS # THEN C<0,1>CPU$TIMA = "0"; IF C<1,1>CPU$TIMA EQ " " THEN C<1,1>CPU$TIMA = "0"; NP$WRTW(SN$FET,HEADING,6); # WRITE CPU TIME ENTRY TO CIO BF# HDNG$MSG = "PROCEDURE CALLS"; NP$WRTW(SN$FET,HEADINGA,7); PRNT = TRUE; FOR I = TYPE"CHEK" STEP 1 UNTIL TYPE"WAIT" DO BEGIN NP$SN(I); END HDNG$MSG = "WORKLIST TRANSFER ATTEMPTS"; NP$WRTW(SN$FET,HEADINGA,7); NP$SN(TYPE"WLX"); NP$SN(TYPE"WLNX"); HDNG$MSG = "INPUT/OUTPUT BLOCKS TRANSFERRED"; NP$WRTW(SN$FET,HEADINGA,7); FOR I = TYPE"INB" STEP 1 UNTIL TYPE"OSB4" DO BEGIN NP$SN(I); END FOR I = 0 STEP 1 UNTIL 7 DO BEGIN IF STAT[STATMSGT[I]] NQ 0 THEN # STATISTICS DATA EXISTS # BEGIN HDNG$MSG = STATMSGS[I]; # TEXT OF STATISTICS TYPE # NP$WRTW(SN$FET,HEADINGA,7); NP$SN(STATMSGT[I]); # OUTPUT STATISTICS DATA # END END IF (STAT[TYPE"ERRS"] NQ 0) OR (STAT[TYPE"NAKS"] NQ 0) THEN BEGIN HDNG$MSG = "ERRORS"; NP$WRTW(SN$FET,HEADINGA,7); NP$SN(TYPE"ERRS"); NP$SN(TYPE"NAKS"); END PRNT = FALSE; NP$WRTR(SN$FET,1); IF SN$AT[0] NQ 0 THEN # WRITE ERROR OCCURRED ON FILE # BEGIN NP$PIOE(SN$FET); # PROCESS I/O ERROR ON FILE # END *ENDIF RETURN; END #NP$SPRNT# TERM