cQJRNLC ;Check Journaled Globals ;cQJRNLC; Q ; START ; setup variables I '($P($P($ZV,")",2),"(",1)[" 5.") U 0 W !,"For Caché version 5 only!",! Q S SERVER=$ZCVT($ZU(110),"U"),NMSPC=$ZU(5),SHOW=$G(SHOW) S CONFIG=$G(^cTABEL("base",SERVER,NMSPC,"Config"),"?") S JSW=$G(^cTABEL("journal",SERVER,NMSPC,CONFIG,"general",0,0),"ALL") S LOG="^|home|ZZLOG(""CHECK"",""G"")" I SHOW W !,"server: ",SERVER,!,"Config: ",CONFIG,!,"Journal: ",JSW,! S %G="^%z" F S %G=$O(^%utility($J,%G)) Q:%G="" D . ; Kill non-existant globals, that have only a directory entry . I '$D(@%G),($E(%G,1,4)'="^odd")&($E(%G,1,3)'="^rI") K @%G Q . K A D DB(%G,.A) S I="" . F S I=$O(A(I)) Q:I="" D .. S R=$P(A(I),"^",2),JS=+$G(A(I,"Jstat")),KS=+$G(A(I,"Kstat")) .. I SHOW D ... W !,%G,?20,R,?60,JS,?70,KS ... F I="exclude","include" I $D(^cTABEL("journal",SERVER,NMSPC,CONFIG,I,%G,R)) W !?20,I," = ",^(R) .. ; All globals should be journaled .. I JSW="ALL" D ... ; Global is excluded ... I $D(^cTABEL("journal",SERVER,NMSPC,CONFIG,"exclude",%G,R)),^(R)=1 D Q .... ; is journaled -> set journal off .... I JS=4 D JOFF(R,%G) .... ; Global is not excluded ... I '$D(^cTABEL("journal",SERVER,NMSPC,CONFIG,"exclude",%G,R)) D Q .... ; is not journaled -> set journal on .... I 'JS D JON(R,%G) .. ; None of the globals should be journaled .. I JSW="NONE" D ... ; Global is included ... I $D(^cTABEL("journal",SERVER,NMSPC,CONFIG,"include",%G,R)),^(R)=1 D Q .... ; is not journaled -> set journal on .... I 'JS D JON(R,%G) .... ; The switch 'Keep Global' should be on .... I 'KS D KON(R,%G) Q .... ; Global is not included ... I '$D(^cTABEL("journal",SERVER,NMSPC,CONFIG,"include",%G,R)) D Q .... ; is journaled -> set journal off .... I JS=4 D JOFF(R,%G) ; YZ Q ; SHOW S SHOW=1 G START ; SELG ;Select globals K ^%utility($j) S X=$$Fetch^%GD("*",1,0) SELGZ Q ; JON(R,G) ;Set journal on S K=$$SetJournalType^%DM(R,G,1) I SHOW W !,G,?20,R,?60,$S(JS=4:"",1:"Not "),"Journaled",!?60,"Now turned on" JONZ Q ; JOFF(R,G) ;Set journal off S K=$$SetJournalType^%DM(R,G,0) I SHOW W !,G,?20,R,?60,$S(JS=4:"",1:"Not "),"Journaled",!?60,"Now turned off" JOFFZ Q ; KON(R,G) ;Set Keep Global on S K=$$SetKeepType^%DM(R,G,1) I SHOW W !,G,?20,R,?60,"Keep Global",!?60,"Now turned on" KONZ Q ; KOFF(R,G) ;Set Keep Global off S K=$$SetKeepType^%DM(R,G,0) I SHOW W !,G,?20,R,?60,"Keep Global",!?60,"Now turned off" KOFFZ Q ; DB(%G,X) K X Q:'$L(%G) S %G=$S($E(%G)'="^":"^"_%G,1:%G) Q:%G'?1"^"1A.E Q:'$D(@%G) S %GL=$E(%G,2,$L(%G)) S X(-1)=$$getdest^cQXLINF1($ZU(5),%GL) F I=0:1:9 S K=$$getdest^cQXLINF1($ZU(5),%GL,I) D . S J="",SW=0 F S J=$O(X(J)) Q:J="" I K=X(J) S SW=1 . Q:SW S X(I)=K S J="" F S J=$O(X(J)) Q:J="" S K=X(J) D . S L=$$GetJournalType^%DM($P(K,"^",2),%GL,.set) . I L'=1 K X(J) Q . E S X(J,"Jstat")=set ; 0 = not journaled, 4 = journaled . S L=$$GetKeepType^%DM($P(K,"^",2),%GL,.set) . I L=1 S X(J,"Kstat")=set ; 0 = do not keep, 1 = keep global DBZ Q ; ERR U 0 W !,$G(X),! G YZ ; ZZ ; 17.01.2012 - 15:58 * Cache-r6.4.9