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