cQCE ;Check several things - part 2;cQCE;
Q
;
date ;date
N %H,%J,%R S %H=1+$H,%J=%H\1461,%R=%H#1461,DJ=%J*4+1841+(%R\365),DD=%R#365,DM=1 I %R=1460 S DD=365,DJ=DJ-1
F %J=31,(%R>1154)+28,31,30,31,30,31,31,30,31,30 Q:%J'
1 S ZER=3,R($O(R(""),-1)+1)="Backup File is older than 1 day."
.. I $D(M(2)),$D(M(3)),M(2)'=M(3) S ZER=4,R($O(R(""),-1)+1)="Modification date mismatch between Backup File and File on Backup PC."
.. I ZER S R($O(R(""),-1)+1)=""
.. I ZER!Z D
... F L=1:1:3 I $D(X(L)),$L(X(L)) S R($O(R(""),-1)+1)=X(L)_TAB_$S($D(S(L)):$$MB^cQCD(S(L)/1024/1024),1:"")_TAB_$S($D(M(L)):$$DT(M(L)),1:"")
... S R($O(R(""),-1)+1)="",ZZER=ZER
I $O(R(""))'="" D M^cQ14("Backup report."_$S(ZZER=0:"",1:" Errors found!"),.R,'ZZER)
L -^cLOGL($ZU(5),"CTK0","Backup")
I $G(debug) W ! ZW R
BUZ Q
;
UB(Z,debug) ;Check logfiles Ultrabac
N BUDIR,DBFR,DIRFR,ER,I,JRNL,K,L,M,PCDIR,R,S,TAB,TYPE
K R S Z=+$G(Z),TAB=" , ",ER=0
L +^cLOGL($ZU(5),"CTK0","Ultrabac"):1 E Q ;Check already running
S PCLOG=$G(^cLOG($ZU(5),"BACKUP","PC","LOG"))
I $L(PCLOG) D
. S:$E(PCLOG,$L(PCLOG))'="/" PCLOG=PCLOG_"/" S PCLOG=$TR(PCLOG,"/","\")
. S FILE=PCLOG_"BK"_$E($ZD($H,8),3,10)_$S($ZCONVERT(PCLOG,"U")["ULTRABAC7":".",1:"-")_"000.TXT"
. S ER=$$TST^cQFILE(FILE) I ER Q ;FILE does not exist
. I Z D
.. S ER=$$OR^cQFILE(FILE) Q:ER
.. F S ER=$$SetIO^%NLS("UnicodeLittle") I $$GetIO^%NLS()="UnicodeLittle" Q
.. F S ER=$$RF^cQFILE(FILE,.K) Q:ER S R($O(R(""),-1)+1)=K
.. F S ER=$$SetIO^%NLS("RAW") I $$GetIO^%NLS()="RAW" Q
.. S ER=$$CF^cQFILE(FILE)
.. S R($O(R(""),-1)+1)=""
I $O(R(""))'="" D M^cQ14("Ultrabrac logfile."_$S(ER=0:"",1:" Errors found!"),.R,'ER)
L -^cLOGL($ZU(5),"CTK0","Ultrabac")
I $G(debug) W ! ZW R
UBZ Q
;
DMP(debug) ;Check for dump files in systemdirectory
L +^cLOGL($ZU(5),"CTK0","Dumps"):1 E Q ;Check already running
S DIR=$ZU(86),DIR=$P(DIR,"\",1,$L(DIR,"\")-1)_"\Mgr"
D DIR^cQDIR(DIR,.A) S I=0,SW=0 K R
F S I=$O(A(I)) Q:I="" I $ZCVT($P($P(A(I,0),"\",$L(A(I,0),"\")),".",2),"L")="dmp" D
. I $D(^ZZLOG("DUMP",A(I,0),$P(A(I,3),","),$P(A(I,3),",",2))) Q
. S R($O(R(""),-1)+1)=A(I,0)_" "_$$DT(A(I,3))
. S ^ZZLOG("DUMP",A(I,0),$P(A(I,3),","),$P(A(I,3),",",2))="Reported\"_$$DT($H)
I $O(R(""))'="" D M^cQ14("Dumpfiles found. Report to Intersystems!",.R,0)
L -^cLOGL($ZU(5),"CTK0","Dumps")
I $G(debug) W ! ZW R
DMPZ Q
;
CTK(debug) ;Check if caretaker missed a loop
N A,C,I,J,K,L,M,R,S0,S00,S01,S02,S03,S04,S1,S10,S20,X
L +^cLOGL($ZU(5),"CTK0","CTK"):1 E Q ;Check already running
S (I,J)="" K A
F S I=$O(^cLOG($ZCVT($ZU(110),"U"),"STUSSD",I)) Q:I="" F S J=$O(^cLOG($ZCVT($ZU(110),"U"),"STUSSD",I,J)) Q:J="" S K=^(J),A($P(K,"\"),$ZDATETIME($P(K,"\",4),4,2))=K
S (I,J)=""
F S I=$O(^cLOG($ZU(5),"BACKUP","LOGBOEK",4,I)) Q:I="" F S J=$O(^cLOG($ZU(5),"BACKUP","LOGBOEK",4,I,J)) Q:J="" F L=J-60,J,J+60 S K=I_","_L,A("BU",$ZDATETIME(K,4,2))=^(J)
S M=$G(^cLOG($ZU(5),"CTK0","LOOP",0,"LOG")),C=$G(^cLOG($ZU(5),"CTK0","LOOP",$ZCVT($ZU(110),"U"),0)),I="" K R
F S I=$O(^cLOG($ZU(5),"CTK0","LOOP",$ZCVT($ZU(110),"U"),I)) Q:I="" S K=I D
. I (C-1=I)!(C=I)!(C+1=I) Q ;don't check around your own loop
. S (S0,S1)=0
. I (K>0)&(K-186399+$P(S01,","))_","_$S(S02>86399:S02-86400,1:S02),S04=$ZDATETIME(S03,4,2)
.. S X=S04=S10 ;if X=0: loop skipped at least one minute
. I +X=0,'$D(^cLOG($ZU(5),"CTK0","LOOP",1,$ZCVT($ZU(110),"U"),$P(S1,","),$P(S1,",",2))) D
.. S R($O(R(""),-1)+1)="Caretaker has not run between "_S00_" and "_S10
.. S ^cLOG($ZU(5),"CTK0","LOOP",1,$ZCVT($ZU(110),"U"),$P(S1,","),$P(S1,",",2))=$ZDATETIME(S1,8,1,3)_"\"_$ZDATETIME($H,8,1)
I $O(R(""))'="" D M^cQ14("Caretaker has missed a loop!",.R,0)
D CLEAN^cQ13("^cLOG("""_$ZU(5)_""",""CTK0"",""LOOP"",1,"""_$ZCVT($ZU(110),"U")_""")",40)
L -^cLOGL($ZU(5),"CTK0","CTK")
I $G(debug) W ! ZW R
CTKZ Q
;
CT(X,debug) ;Cachetemp has grown more than X MB?
L +^cLOGL($ZU(5),"CacheTemp"):1 E Q ;Check already running
N A,B,C,R,day,dayp,tim,timp
S X=$G(X,5)*1024*1024 K A,B,R D DB^cQ21(.A) I '$D(A("CACHETEMP")) Q
S ER=$$FS^cQFILE(A("CACHETEMP")_"cache.dat",.B) I +ER Q
S day=+$H,tim=+$P($H,",",2),^cLOG($ZU(5),"CacheTemp",$ZCVT($ZU(110),"U"),day,tim)=B
S dayp=day,timp=$O(^cLOG($ZU(5),"CacheTemp",$ZCVT($ZU(110),"U"),day,tim),-1)
I timp="" S dayp=$O(^cLOG($ZU(5),"CacheTemp",$ZCVT($ZU(110),"U"),day),-1) Q:'dayp S timp=$O(^cLOG($ZU(5),"CacheTemp",$ZCVT($ZU(110),"U"),dayp,86400),-1)
I timp="" Q
S C=^cLOG($ZU(5),"CacheTemp",$ZCVT($ZU(110),"U"),dayp,timp)
I B-C>X D
. S R($O(R(""),-1)+1)="CacheTemp database "_A("CACHETEMP")_"cache.dat"
. S R($O(R(""),-1)+1)="went from "_$FN(C/1024/1024,".",0)_" MB ("_$ZD(dayp,4,,4)_" "_$ZT(timp,2)_") to "_$FN(B/1024/1024,".",0)_" MB ("_$ZD(day,4,,4)_" "_$ZT(tim,2)_")"
. S R($O(R(""),-1)+1)="Growth is "_$FN((B-C)/1024/1024,".",0)_" MB in "_(day-dayp*86400+tim-timp\60)_" minutes"
. S R($O(R(""),-1)+1)="Which is more than the threshold of "_$FN(X/1024/1024,".",0)_" MB"
I $O(R(""))'="" D M^cQ14("CacheTemp is growing beyond threshold!",.R,0)
D CLEAN^cQ13("^cLOG("""_$ZU(5)_""",""CacheTemp"","""_$ZCVT($ZU(110),"U")_""")",40)
L -^cLOGL($ZU(5),"CacheTemp")
I $G(debug) W ! ZW R
CTZ ;
;
DT(K) Q $ZD($P(K,",",1),4)_" "_$ZT($P(K,",",2),1)
;
ERR W !!,$ZE,!! ZQ
;
ZZ ; 17.01.2012 - 15:58 * Cache-r6.4.9