cQGSIZE2(t,n) ;Data-M Global Size Utility ;cQGSIZE2; ;For Cache 2008 & Cache 2010 I '($P($P($ZV,")",2),"(",1)[" 2008")&'($P($P($ZV,")",2),"(",1)[" 2010") Q BEGIN S t=+$G(t),n=$G(n),cs=$ZU(5),$ZT="ERR^"_$T(+0) ; START D GDB^cQAUTOBU(.V) I '$D(V($ZU(5))) Q ZN "%SYS" J BldInfo^Wsdba("",0) ZN cs H 2 L +^%SYS("database") ;try to lock this global L -^%SYS("database") ;if succeeded, Wsdba has finished S EX="\CacheTemp\ERRORS\HULP\ROUTINE\TEMP\TEMPC\TMP\UTILITY\ZZLOG\cIPRINT\cJOB\cLOG\cPRINT\cQSYS\cTABEL\mtemp\mtemp0\mtemp1\rOBJ\" S home=$ZU(5),LOG="^|home|ZZLOG(""cQGSIZE"","""_$ZCVT($ZU(110),"U")_""")" K @LOG S @LOG@(0,0,1)="Start\"_$J_"\"_$TR($ZD($H,4,,1),"/",".")_" "_$ZT($P($H,",",2),1) ; S FILE=$P($ZU(86),"\",1,(($P($P($ZV,")",2),"(",1)[" 2008")!($P($P($ZV,")",2),"(",1)[" 2010"))+3)_"\Mgr\INTEGRIT.LOG",(AT,CT,SW,END,DIF)=0,DIR="",M="Errors were found." S ER=$$OR^cQFILE(FILE) I ER S M=" not found!",R(1)="File "_FILE_M E D . F I=1:1 S ER=$$RF^cQFILE(FILE,.K) Q:ER D Q:DIF>7 .. I I=1 S R($O(R(""),-1)+1)=K,DAY=$P($P(K," on ",2)," ") I DAY?2N1"/"2N1"/"4N S DIF=$H-$ZDATEH(DAY) .. I (K["Directory") D Q ... I $L(DIR) S @LOG@("calc",0,DIR)=AT_";"_CT_"\" ... S DIR=$P($P(K," ",2),"-"),G="" .. I K["Global" S G=$P(K,": ",2) Q .. I EX[("\"_$G(G)_"\") Q .. I $L($G(G)),$E(K,1,4)=" Tot" D ... S X=$P(K,"=",2),A=$P(X,"("),A=$ZSTRIP($P(A," ",2,$L(A," ")),"<"," ") ... S A=$TR(A,","),A=$S(A["MB":+A,1:A/1024),C=+$P(X,"(",2)/100*A ... S @LOG@("calc","^"_G,DIR)=A_";"_C,AT=AT+A,CT=CT+C . S ER=$$CF^cQFILE(FILE) I DIF>7 S NE=1,M="is from "_DAY ; SORT S G=0,LOGS="^|home|ZZLOG(""cQGSIZE"","""_$ZCVT($ZU(110),"U")_""",""sort"")" K @LOGS F S G=$O(@LOG@("calc",G)) Q:G="" S H="" D . F S H=$O(@LOG@("calc",G,H)) Q:H="" S K=^(H) S @LOG@("sort",H,$P(K,";"),G)=$P(K,";",2) S @LOG@(0,0,2)="End \"_$J_"\"_$TR($ZD($H,4,,1),"/",".")_" "_$ZT($P($H,",",2),1) D MESS(t) Q ; DISP(t,n) S t=+$G(t),n=$G(n) D COLL F I=1:1:R W !,R(I) Q ; MESS(t,n) S t=+$G(t),n=$G(n) D COLL S PG=$T(+0),PN=$P($T(+1),";",2) D D1016^cANEM0(PG,PN,.R) Q ; COLL ; Collect data S t=+$G(t),home=$ZU(5),LOG="^|home|ZZLOG(""cQGSIZE"","""_$ZCVT($ZU(110),"U")_""")" K ADRES,R,S,VAR S (DB,R,S,T,V,W,Y)=0,P1=47,P2=59,P3=69,P4=81,P5=91 S R=$G(R)+1,R(R)="X Database",$E(R(R),P1)=$J("Cur Size",12),$E(R(R),P2)=$J("Cur %Full",10) S $E(R(R),P3)=$J("Max Size",12),$E(R(R),P4)=$J("Max %Full",10),$E(R(R),P5)=$J("Cur In Use",12) S R=$G(R)+1,R(R)="- --------",$E(R(R),P1)=$J("----------",12),$E(R(R),P2)=$J("---------",10) S $E(R(R),P3)=$J("----------",12),$E(R(R),P4)=$J("---------",10),$E(R(R),P5)=$J("----------",12) F S DB=$O(^%SYS("database",DB)) Q:DB="" D . S K=^(DB),CUR=+$P(K,$C(1),1),CURP=+$P(K,$C(1),2)*100,MAX=+$P(K,$C(1),3)*8/1024,MAXP=+$P(K,$C(1),4)*100,USE=CUR*CURP/100 . S R=$G(R)+1,R(R)=" "_DB,$E(R(R),P1)=$$NMBR(CUR),$E(R(R),P2)=$$PROC(CURP),$E(R(R),P3)=$$NMBR(MAX),$E(R(R),P4)=$$PROC(MAXP),$E(R(R),P5)=$$NMBR(USE) . S T=T+CUR,V=V+MAX,Y=Y+USE . ;If Maximum percentage full > 97% => alarm *** in elk geval opzetten . I MAXP>98 S $E(R(R))="A" S W=2,RS=R Q . ;If Maximum percentage full > 95% => warning *** alleen indien nog geen Alarm . I MAXP>96 S $E(R(R))="W" S:'W W=1,RS=R Q S R=R+1,$E(R(R),P1)="-------------",$E(R(R),P3)="-------------",$E(R(R),P5)="-------------" S R=R+1,$E(R(R),P1)=$$NMBR(T),$E(R(R),P3)=$$NMBR(V),$E(R(R),P5)=$$NMBR(Y) I t D . S N="" . F S N=$O(@LOG@("sort",N)) Q:N="" D .. I N["\mgr\" Q .. I N["\cachetemp\" Q .. I N["\r\" Q .. I $L($G(n)),$ZCVT(N,"U")'[("\"_$ZCVT($G(n),"U")_"\") Q .. S R=$G(R)+1,R(R)="",R=$G(R)+1,R(R)="Database "_N .. S R=$G(R)+1,$E(R(R),18)="Allocated",$E(R(R),36)="Used",S="",T=0 .. F I=1:1 S S=$O(@LOG@("sort",N,S),-1) Q:S="" Q:S<1 S H="" D ... F S H=$O(@LOG@("sort",N,S,H)) Q:H="" S T=T+1 Q:T>t D .... S R=$G(R)+1,R(R)=$J(T,2)_". "_H,$E(R(R),15)=$$NMBR(S),$E(R(R),28)=$$NMBR(@LOG@("sort",N,S,H)) S R=$G(R)+1,R(R)="",R=$G(R)+1,R(R)=@LOG@(0,0,1),R=$G(R)+1,R(R)=@LOG@(0,0,2) S I="" F S I=$O(R(I)) Q:I="" S R(I)=$TR(R(I),"\","/") Q ; NMBR(X) S X=+$G(X) I X>999999 Q $J($FN(X/1024,".",0),9)_" GB" Q $J($FN(X,".",0),9)_" MB" ; PROC(X) Q $J(X,9,0)_"%" ; ERR W !,$ze Q ; ZZ ; 17.01.2012 - 15:58 * Cache-r6.4.9