cQGSIZE8(t) ;Data-M Global Size Utility ;cQGSIZE8; ;For Cache2008.1 I '($P($P($ZV,")",2),"(",1)[" 2008")&'($P($P($ZV,")",2),"(",1)[" 2010") Q BEGIN S t=+$G(t),cs=$ZU(5),$ZT="ERR^"_$T(+0) ; START D GDB^cQAUTOBU(.V) I '$D(V($ZU(5))) Q S B=X($ZU(5),"globals"),B=$P(B,"\",1,$L(B,"\")-2)_"\" 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\TMP\UTILITY\ZZLOG\cIPRINT\cJOB\cLOG\cPRINT\cQSYS\cTABEL\mtemp\mtemp0\mtemp1\rOBJ\" S home=$ZU(5),LOG="^|home|ZZLOG(""%GSIZE"","""_$ZCVT($ZU(110),"U")_""")" K @LOG S @LOG@(0,0,1)="Start\"_$J_"\"_$TR($ZD($H,4,,1),"/",".")_" "_$ZT($P($H,",",2),1) F I=0:1:99 S DIR=B_I_"\" I $L($zu(12,DIR,3)) D GET SUM S G="",LOGN="^|home|ZZLOG(""%GSIZE"","""_$ZCVT($ZU(110),"U")_""",""sum"")",LOGS="^|home|ZZLOG(""%GSIZE"","""_$ZCVT($ZU(110),"U")_""",""sorted"")" K @LOGN,@LOGS F S G=$O(@LOG@("calc",G)) Q:G="" S H="",(S,T)=0 D S @LOG@("sum",G)=S_";"_T I G'=0 S @LOG@("sorted",S,G)=T . F S H=$O(@LOG@("calc",G,H)) Q:H="" D I G=0 S @LOG@("sum",G,H)=$P(@LOG@("calc",G,H),"\") .. S S=$P($P(^(H),"\"),";")+S,T=$P($P(^(H),"\"),";",2)+T S @LOG@(0,0,2)="End \"_$J_"\"_$TR($ZD($H,4,,1),"/",".")_" "_$ZT($P($H,",",2),1) D MESS(t) Q ; DISP(t) S t=+$G(t) D COLL F I=1:1:R W !,R(I) Q ; MESS(t) S t=+$G(t) 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(""%GSIZE"","""_$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 R=$G(R)+1,R(R)="",S="" . S R=$G(R)+1,$E(R(R),18)="Allocated",$E(R(R),36)="Used",S="" . F I=1:1:t S S=$O(@LOG@("sorted",S),-1) Q:S="" S H="" D .. F S H=$O(@LOG@("sorted",S,H)) Q:H="" S R=$G(R)+1,R(R)=$J(I,2)_". "_H,$E(R(R),15)=$$NMBR(S),$E(R(R),28)=$$NMBR(@LOG@("sorted",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)_"%" ; GET N V D GD^cQVGGLO(DIR,.V) S G="",(ALLOCT,USEDT)=0 F S G=$O(V(G)) Q:G="" D . ;I EX[("\"_G_"\") Q . S Status=##class(%Library.GlobalEdit).GetGlobalSize("^^"_DIR,G,.ALLOC,.USED) . I +Status'=1 S (ALLOC,USED)=0 . S @LOG@("calc",G,DIR)=ALLOC_";"_USED,ALLOCT=ALLOCT+ALLOC,USEDT=USEDT+USED S @LOG@("calc",0,DIR)=ALLOCT_";"_USEDT_"\"_$TR($ZD(+$H,4),"/",".")_"\"_$ZT($P($H,",",2),1) GETZ Q ; ERR Q ; ZZ ; 17.01.2012 - 15:58 * Cache-r6.4.9