Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: INHOQR2

INHOQR2.m

Go to the documentation of this file.
  1. INHOQR2 ; FRW/JMB ; 01 Oct 1999 15:06 ; Show GIS queue status - cont.
  1. ;;3.01;BHL IHS Interfaces with GIS;;JUL 01, 2001
  1. ;COPYRIGHT 1991-2000 SAIC
  1. Q
  1. ;
  1. IND ;Initialize INDAT array for next scan
  1. N INQ,P,T
  1. S INQ="" F S INQ=$O(INDAT(INQ)) Q:'$L(INQ) S INDAT(INQ,"COUNT")=0 D
  1. . S P="" F S P=$O(INDAT(INQ,P)) Q:+P'=P&(P'="PEND") D ;if P="COUNT",it will Q
  1. .. S T="" F S T=$O(INDAT(INQ,P,T)) Q:'$L(T) D
  1. ... S INDAT(INQ,P,T,"COUNT")=0
  1. Q
  1. ;
  1. DISP ;Display Report
  1. ;
  1. N INQ,IN0,P,T
  1. ;Paint header
  1. D HDR
  1. ;Work through INDAT array
  1. ; IN0 - Flag to display queue name only once
  1. S INQ=0 F S INQ=$O(INDAT(INQ)) Q:'INQ D OV(INQ,0) S IN0=0 D
  1. . S P="" F S P=$O(INDAT(INQ,P)) Q:((+P'=P)&(P'="PEND"))!('INPAR("DETAIL")) S T="" F S T=$O(INDAT(INQ,P,T)) Q:'$L(T) D DPRI(INQ,P,T,.IN0)
  1. .;Display queues with 0 totals
  1. .;If there is only one priority level for queue INQ, do not
  1. .; display total by priority, since data is repeated
  1. .;Display overall totals
  1. .;Display Brief report
  1. .I ('INDAT(INQ,"COUNT"))&(IN0=0)!(IN0>1)!(INQ>300)!('INPAR("DETAIL")) D OV(INQ,0),DTOT(INQ,IN0)
  1. ;Paint footer
  1. D FTR
  1. Q
  1. ;
  1. DPRI(INQ,P,T,IN0) ;Display queue size by priority level
  1. W ! W:'IN0 INDAT(INQ,"NAME") S IN0=IN0+1
  1. W ?TAB(0)+2,P W:T="ST" " STAT"
  1. W ?TAB(1),$J(INDAT(INQ,P,T,"COUNT"),7)
  1. W ?TAB(2),$J(INDAT(INQ,P,T,"MIN"),7)
  1. W ?TAB(3),$J(INDAT(INQ,P,T,"MAX"),7)
  1. W ?TAB(4),$J(INDAT(INQ,P,T,"AVG"),7)
  1. D:$L($O(INDAT(INQ,P,T)))!(+$O(INDAT(INQ,P))) OV(INQ,1)
  1. Q
  1. ;
  1. DTOT(INQ,IN0) ;Display queue totals
  1. ;
  1. ; New line before displaying: "Total" string, Queue name,
  1. ; Messages created per hr, transactions identified per hour.
  1. W:INQ'=400 !
  1. W:IN0>1 ?TAB(0),"Total:"
  1. ; One blank line before "Queue Total"
  1. W:INQ=400 !!
  1. ; Display Queue Name if there are not entries in the queue
  1. ; Display "Queue Total", "Messages created per hour" or
  1. ; "Transactions identified per hour" strings
  1. W:'IN0 INDAT(INQ,"NAME")
  1. W ?TAB(1),$J(INDAT(INQ,"COUNT"),7),?TAB(2),$J(INDAT(INQ,"MIN"),7)
  1. W ?TAB(3),$J(INDAT(INQ,"MAX"),7),?TAB(4),$J(INDAT(INQ,"AVG"),7)
  1. ; Blank line after priority totals
  1. ; One blank line before Queue Total
  1. W:(IN0>1)&($O(INDAT(INQ))'=400) !
  1. Q
  1. ;
  1. OV(INQ,IN1) ;Handle overflow
  1. ;INPUT
  1. ; INQ - Process Id
  1. ; IN1 - 1 Repeat process Id
  1. ; - 0 Do not repeat process Id
  1. Q:$Y<(IOSL-4)
  1. W !!,"More..." F X=1:1:INPAR("REPAINT") Q:INTASKED R *%:1 Q:$T
  1. D HDR
  1. W:IN1 !,INDAT(INQ,"NAME")," Cont."
  1. Q
  1. ;
  1. HDR ;Diplay header
  1. N T
  1. ;Calculate run time = now-start
  1. S INRUN=$$TDIF^INHUTS(INPAR("START"),$H),INRUNASC=$$FORMAT^INHUTS(INRUN)
  1. ;Calculate average run time per iteration
  1. S INRUNAVG=$$FORMAT^INHUTS(INRUN\INITER,2)
  1. ;Clear screen
  1. W @IOF
  1. W "GIS Queue Size",?55,$$CDATASC^UTDT($$NOW^UTDT,1,1)
  1. W !,?5,"Start Time: ",$$CDATASC^UTDT(INPAR("START"),1,1),?40," Number of Iterations: ",INITER
  1. W !,?5," Run Time: ",INRUNASC,?40,"Avg Time per Iteration: ",INRUNAVG
  1. W !
  1. ;
  1. W !,"Background Process"
  1. W:INPAR("DETAIL") ?TAB(0),"Prio"
  1. W ?TAB(1)," Curr",?TAB(2)," Min",?TAB(3)," Max",?TAB(4)," Avg"
  1. W !,"---------------------"
  1. W:INPAR("DETAIL") ?TAB(0),"-----"
  1. F T=1:1:4 W ?TAB(T)," ------"
  1. Q
  1. ;
  1. FTR ;Display footer
  1. ;
  1. I 'INTASKED W !!,"Press any key to exit: "
  1. Q