cQJRNLS ;Journal Statistics ;cQJRNLS; Q ; START(Y) ; select journalspace - copied from JRNDUMP W !!,"Build Statistics for journalspaces",!! S K=$G(Y) D QQM^cQ6 S Y=K D BLD(.A),EX() EXCL1 W !,"Exclude ",EX(1),!," 1[] = yes 0[] = no :" R K G YZ:K="-",EXCL1:'$L(K)!("01"'[K) I +K S EX=1**2+EX EXCL2 W !,"Exclude ",EX(2),!," 1[] = yes 0[] = no :" R K G EXCL1:K="-",EXCL2:'$L(K)!("01"'[K) I +K S EX=2**2+EX EXCL3 W !,"Exclude ",EX(3),!," 1[] = yes 0[] = no :" R K G EXCL2:K="-",EXCL3:'$L(K)!("01"'[K) I +K S EX=3**2+EX EXCL4 W !,"Exclude ",EX(4),!," 1[] = yes 0[] = no :" R K G EXCL3:K="-",EXCL4:'$L(K)!("01"'[K) I +K S EX=4**2+EX DISP F I=1:1:A W !,$J(I,3),". ",A(I) W !!,"Enter sequence number of desired journalspace: " R K G YZ:K="^",START:K="-" S K=+K I '$D(A(K)) W !!,"Invalid input",!! G DISP ; U 0 W !!,"Reading journalspace ",A(K),!,Y,!! D READ(A(K)) Q ; READ(J) ; read journalfile S (%JFILE,JFILE)=J S ns=$ZU(5) ZN "%SYS" S X=$$OPENJRN^JRNUTIL(%JFILE) I X'=1 G ERR S X=$$USEJRN^JRNUTIL(%JFILE) I X'=1 G ERR K GREFB,GREFC,SIZEC,SIZED,TGLOC,TGLOD,VALN,VALO,JRNODE S ADDR=0 F S X=$$GETREC^JRNUTIL(ADDR,.JRNODE) Q:X'=1 D Q:ADDR=0 . D DATA . I "\K\KS\S\"[("\"_ACT_"\") D .. ; excluded globals .. S SW=0 F I=2:1:$L(EX(0),",")-1 S K=$P(EX(0),",",I) I $RE($E($RE(GLON),1,$L(K)))=K S SW=1 Q .. Q:SW F I=1:1:4 S K=I**2 Q:SW I EX\K#2=1 F J=2:1:$L(EX(I),",")-1 I GLON=$P(EX(I),",",J) S SW=1 Q .. Q:SW ; end exclude globals .. ; Count number of global references .. F I=GLOS,"z" F J=GLON,"z" F K=ACT,"z" S GREFC(I,J,K)=$G(GREFC(I,J,K))+1 .. ; Count # of actions and amount of data on hourly basis .. F K=+TIME,"z" S SIZEC(DAY,K)=$G(SIZEC(DAY,K))+1 .. F K=+TIME,"z" S SIZED(DAY,K)=$G(SIZED(DAY,K))+$L($G(GLO))+$L($G(V))+$L($G(VO)) .. ; Count # of actions and amount of data on hourly basis for each global .. F I=GLOS,"z" F J=GLON,"z" F K=ACT,"z" D ... F KK=+TIME,"z" S TGLOC(DAY,KK,I,J,K)=$G(TGLOC(DAY,KK,I,J,K))+1 ... F KK=+TIME,"z" S TGLOD(DAY,KK,I,J,K)=$G(TGLOD(DAY,KK,I,J,K))+$L($G(GLO))+$L($G(V))+$L($G(VO)) . S ADDR=ADDRN K JRNODE S X=$$CLOSEJRN^JRNUTIL(%JFILE) ZN ns ; SORT K GREFCS S (I,J,K)="" F S I=$O(GREFC(I)) Q:I="" D . F S J=$O(GREFC(I,J)) Q:J="" D .. F S K=$O(GREFC(I,J,K)) Q:K="" D ... S GREFCS(GREFC(I,J,K),I,J,K)="" K GREFCT S (I,J,K)="" F S I=$O(GREFC(I)) Q:I="" I I'="z" D . F S J=$O(GREFC(I,J)) Q:J="" I J'="z" D .. F S K=$O(GREFC(I,J,K)) Q:K="" I K="z" D ... S Z=GREFC(I,J,K),GREFCT(Z,I,J,K)=GREFC(I,J,K),L="" ... F S L=$O(GREFC(I,J,L)) Q:L="" I L'="z" S GREFCT(Z,I,J,L)=GREFC(I,J,L) K SIZE("z","z") S I="" F S I=$O(SIZEC(I)) Q:I="z" S SIZEC("z","z")=$G(SIZEC("z","z"))+SIZEC(I,"z") S I="" F S I=$O(SIZED(I)) Q:I="z" S SIZED("z","z")=$G(SIZED("z","z"))+SIZED(I,"z") K TGLOCS S (I,J,K,L,M)="" F S I=$O(TGLOC(I)) Q:I="" I I'="z" D . F S J=$O(TGLOC(I,J)) Q:J="" I J'="z" D .. F S K=$O(TGLOC(I,J,K)) Q:K="" I K'="z" D ... F S L=$O(TGLOC(I,J,K,L)) Q:L="" I L'="z" D .... F S M=$O(TGLOC(I,J,K,L,M)) Q:M="" I M="z" D ..... S TGLOCS(I,J,TGLOC(I,J,K,L,M),K,L)="" K TGLODS S (I,J,K,L,M)="" F S I=$O(TGLOD(I)) Q:I="" I I'="z" D . F S J=$O(TGLOD(I,J)) Q:J="" I J'="z" D .. F S K=$O(TGLOD(I,J,K)) Q:K="" I K'="z" D ... F S L=$O(TGLOD(I,J,K,L)) Q:L="" I L'="z" D .... F S M=$O(TGLOD(I,J,K,L,M)) Q:M="" I M="z" D ..... S TGLODS(I,J,TGLOD(I,J,K,L,M),K,L)="" ; REPORT ; Show some figures K R S T=";" S R=$G(R)+1,R(R)="SYSTEM "_$ZCVT($ZU(110),"U"),R(R)=R(R)_T_$TR($ZD(+$H,4,,4),"/",".")_T_$TR($ZTIME(+$P($H,",",2),1),"/",".") S R=$G(R)+1,R(R)="Statistics for journalspace"_T_JFILE S R=$G(R)+1,R(R)=T_T_T_"Database"_T_"Global"_T_"Set"_T_"Kill"_T_"Total" S R=$G(R)+1,R(R)=T_T_T_"--------"_T_"------"_T_"---"_T_"----"_T_"-----" S (A,I,II,J,JJ,K,L)="" F K=1:1:20 S L=$O(GREFCT(L),-1) Q:L="" D . F S I=$O(GREFCT(L,I)) Q:I="" I I'="z",I'=0 D .. F S J=$O(GREFCT(L,I,J)) Q:J="" I J'="z" D ... S R=$G(R)+1,R(R)=T_T_T_"\"_$P(I,"\",4,8)_T_J ... S R(R)=R(R)_T_$$NMBR($G(GREFCT(L,I,J,"S"))) ... S R(R)=R(R)_T_$$NMBR($G(GREFCT(L,I,J,"K"))) ... S R(R)=R(R)_T_$$NMBR($G(GREFCT(L,I,J,"z"))) S R=$G(R)+1,R(R)="" S R=$G(R)+1,R(R)="Actions occurred on"_T_"# of Actions"_T_"Volume in KB" S R=$G(R)+1,R(R)="-------------------"_T_"------------"_T_"------------" F S I=$O(SIZED(I)) Q:I="" D . F S J=$O(SIZED(I,J)) Q:J="" D .. S R=$G(R)+1,R(R)=$S(I="z":"Grand ",1:I)_" "_$S(J="z":"Total",1:$J(J,2)_":00->"_$J(J,2)_":59") .. S R(R)=R(R)_T_$$NMBR(SIZEC(I,J))_T_$$NMBR(SIZED(I,J)/1024) .. I (I="z")!(J="z") S R=$G(R)+1,R(R)="" .. I (I'="z"),(J'="z") S (K,L,M,N)="" D ... F X=1:1:5 S K=$O(TGLOCS(I,J,K),-1) Q:K="" D .... F S L=$O(TGLOCS(I,J,K,L)) Q:L="" D ..... F S M=$O(TGLOCS(I,J,K,L,M)) Q:M="" D ...... S R=$G(R)+1,R(R)=T_T_T_"\"_$P(L,"\",4,8)_T_M ...... S R(R)=R(R)_T_$$NMBR($G(TGLOC(I,J,L,M,"S"))) ...... S R(R)=R(R)_T_$$NMBR($G(TGLOC(I,J,L,M,"K"))) ...... S R(R)=R(R)_T_$$NMBR($G(TGLOC(I,J,L,M,"z"))) D TXT(Y) F I=1:1:R S R(I)=$TR(R(I),T,$C(9)) D M^cQ14("Journalspace "_JFILE,.R) ; YZ Q ; BGE(X,Y) S X=$G(X,1),Y=$G(Y) ; BG S K=$G(X),L=$G(Y) D QQM^cQ6 S X=K,Y=L D BLD(.A) I A=0 Q D EX(X) F BGI=1:1:A I $P(A(BGI),"\",$L(A(BGI),"\"))\1=$ZD($H-1,8) D READ(A(BGI)) Q ; BLD(A) N K,JF,ns S ns=$ZU(5) zn "%SYS" K A S A=0,JF=$ZU(78,3) S:JF="" JF=$P($G(^%SYS("JOURNAL","LAST")),"^",2) I JF="" Q S A=A+1,A(A)=JF F S K=$$PREVJRN^JRNUTIL2(JF,.JF) Q:K'>0 I '$ZU(140,4,JF) S A=A+1,A(A)=JF ZN ns Q ; DATA ;Get data K ACT,ADDRN,DATE,DAY,GLO,GLON,GLOR,GLOS,PID,TIME,V,VO S PID=$P($P(JRNODE(1,1),":"),"/",1) I $D(^SYS("PIDList",PID)) S PID=@$Q(^SYS("PIDList",PID)) S ADDRN=$P($P(JRNODE(1,1),":"),"/",3) ;Get next address S ACT=$ZCONVERT($P(JRNODE(1,1),":",2),"U") ; Action, convert to upcase (v5) S GLO=$P(JRNODE(1,1),":",4,$L(JRNODE(1,1),":")) ;full global reference S GLOS=$P($P(GLO,"^^",2),"""") S:'$L(GLOS) GLOS=0 ;database S GLOR=$S($L(GLO):"^"_$P(GLO,"]",2),1:"") ;globalref S GLON=$P(GLOR,"(") ;global S DATE=JRNODE(1,1,3),DAY=$ZD($P(DATE,",",1),3,,4),TIME=$$T($P(DATE,",",2)) I $D(JRNODE(1,1,1)) S VO=JRNODE(1,1,1) I $D(JRNODE(1,1,2)) S V=JRNODE(1,1,2) DATAZ Q ; T(R) S R=$G(R,$P($H,",",2)) TZ Q $E("0"_(R\3600),$L(R\3600),4)_":"_$E("0"_(R#3600\60),$L(R#3600\60),4)_":"_$E("0"_(R#3600#60\1),$L(R#3600#60\1),4) ; EX(X) S EX=$G(X,1) S EX(0)=",CNTRL," S EX(1)=",^%CDServer,^%CacheTask,^%CacheTaskHistory,^%CspPerformance," S EX(1)=EX(1)_"^%SYS,^%Serenji,^DocBook.Counter,^DocBook.Search," S EX(1)=EX(1)_"^HELP,^HULP,^HULPE,^HULPG,^ROUTINE,^TCHULP,^TEMP,^TEMPS," S EX(1)=EX(1)_"^UTILITY,^ZZLOG," S EX(1)=EX(1)_"^cIPRINT,^cJOB,^cLOG,^cPRINT,^cQSYS,^cTABEL,^cpf," S EX(1)=EX(1)_"^mcq,^mdd,^mpriv,^mqh," S EX(1)=EX(1)_"^oddCOM,^oddDEF,^oddMAP,^oddPROC,^oddPROJECT," S EX(1)=EX(1)_"^rBACKUP,^rINDEX,^rINDEXCLASS,^rMAC,^rMACSAVE,^rOBJ," S EX(2)=",^DATB,^ERROR,^HULPKOR,^IND,^INDEX,^UTILI," S EX(3)=",^ITC,^ITCO,^PROMOB,^TCSKO,^TCSKO26,^TRACECON," S EX(4)=",^OW,^OWCTRL,^OWIN,^OWIND,^OWLOG,^OWLOGI,^OWSTAT,^OWZ," Q ; NMBR(K) I '$L(K) Q $J("",12) Q $J($TR($FN(K,",",0),",","."),12) ; TXT(Y) ;Write TXT file S Y=$G(Y) I '$L(Y) S Y="d:\datam\logging\journal_analyze\" S Y=$TR(Y,"/","\"),Y=$P(Y,"\",1,$L(Y,"\")-1)_"\"_$P($P(Y,"\",$L(Y,"\")),".") I $E(Y,$L(Y))="\" S Y=Y_"jrnl" S ER=$$CRED^cQFILE($P(Y,"\",1,$L(Y,"\")-1)) S X=Y_"_"_$ZCVT($ZU(110),"U")_"_"_$TR($P(JFILE,"\",5),".","-")_".txt" W !,X S ER=$$OW^cQFILE(X),J="" I ER Q F S J=$O(R(J)) Q:J="" S ER=$$WF^cQFILE(X,R(J)_$C(13,10)) Q:ER S ER=$$CF^cQFILE(X) TXTZ Q ; ERR U 0 W !,$G(X),! G YZ ; ZZ ; 17.01.2012 - 15:58 * Cache-r6.4.9