cQVGCON ;Controle gelijkheid globals ;cQVGCON; [ 08/24/01 9:18 AM ] G YZ ; T0 ;Controle gelijkheid globals ; ; T0F ;Controle gelijkheid globals ; ; VGL ;Clean up Global Compare ST2 ;Global Compare, step 2 (s) D INI^cQ6,MASTER^cQ5 S home=cs I boot'=slave Q S LOG="^|home|ZZLOG(""CHECK"",""G"")",%LOG="^cLOG(cs,""CHECK"",""G"")" I '$D(@%LOG) G YZ S S="" F S S=$O(@%LOG@(S)) Q:S="" D . S home=$G(@%LOG@(S,"HOME")),UCIL=$G(@%LOG@(S,"UCI")),G=$G(@%LOG@(S,"GLOBALS"),"*") . D UCS^cQVGSG(UCIL) I IU D CLEAN^cQVGGLO ; remove directory, if error remove all files in directory S FILE=$$FILE(0),E=$$DELD^cA710(FILE) I E D DFID^cQFILE(FILE) ; create directory S E=$$CRED^cA710(FILE) ; write file checksum.txt S FILE=$$FILE(1),E=$$OW^cA710(FILE) I E G YZ S (K,L)=$NA(@LOG),TAB=$C(9) K A F S K=$Q(@K) Q:K="" Q:$NA(@K,$QL(L))'=L D Q:E . S E=$$WF^cA710(FILE,$QS(K,5)_TAB_$QS(K,4)_TAB_$QS(K,6)_TAB_"= "_@K_$C(13,10)) . I $QS(K,4)'=0 S A($QS(K,5),$QS(K,4))=1 S E=$$CF^cA710(FILE) S (K,L)="" ; write file compare.txt S FILE=$$FILE(2),E=$$OW^cA710(FILE) I E G YZ F S K=$O(A(K)) Q:K="" F S L=$O(A(K,L)) Q:L="" S E=$$WF^cA710(FILE,K_TAB_L_$C(13,10)) Q:E S E=$$CF^cA710(FILE) G YZ ; COMP ;Send alert & save mismatched globals ST3 ;Global Compare, step 3 (m&s) D INI^cQ6,MASTER^cQ5 S L=0 K R ; read file checksum.txt and count lines S FILE=$$FILE(1) I '$$TST^cA710(FILE) D S E=$$CF^cA710(FILE) . S E=$$OR^cA710(FILE) Q:E F S E=$$RF^cA710(FILE,.K) Q:E S L=L+1,R(L)=K ; delete compare.bat I boot=slave S FILE=$$FILE(3),E=$$DELD^cA710(FILE) I L D . ; send alert . I boot=master S PG=$T(+0),PN=$P($T(@("T0"_QT)),";",2) D D1015^cANEM0(PG,PN,.R) . ; read file compare.txt . S FILE=$$FILE(2),L=0 K ^TEMP(boot,$J) I '$$TST^cA710(FILE) D S E=$$CF^cA710(FILE) .. S E=$$OR^cA710(FILE) Q:E F S E=$$RF^cA710(FILE,.K) Q:E S L=L+1,^TEMP(boot,$J,L)=K . I L K R D .. ; export globals into globalname.system.namespace .. ; with system being 1 for the Master and 2 for the Shadow .. F I=1:1:L S K=^TEMP(boot,$J,I),NSPC=$P(K,$C(9)),G=$P(K,$C(9),2) D S E=$$CF^cA710(FILE) ... S FILE=$$FILE($S($E(G)="^":$E(G,2,$L(G)),1:G))_"."_NSPC,E=$$OW^cA710(FILE) Q:E ... S %NSPC=$ZU(5) ZN NSPC ... F S G=$Q(@G) Q:G="" S E=$$WF^cA710(FILE,G_$C(13,10)_@G_$C(13,10)) Q:E ... ZN %NSPC ... I boot=slave S K=$P(FILE,"\",$L(FILE,"\")),J=K,$P(K,".",2)=1,R(I)="FC "_K_" "_J_" >>result.txt" .. ; create file compare.bat .. I boot=slave S FILE=$$FILE(3),E=$$OW^cA710(FILE) Q:E D S E=$$CF^cA710(FILE) ... S E=$$WF^cA710(FILE,"@echo off"_$C(13,10)_"C:"_$C(13,10)) Q:E ... S E=$$WF^cA710(FILE,"cd \"_$P(FILE,"\",5,6)_$C(13,10)) Q:E ... S E=$$WF^cA710(FILE,"Del "_$P($$FILE(4),"\",$L($$FILE(4),"\"))_$C(13,10)) Q:E ... F I=1:1:L S E=$$WF^cA710(FILE,R(I)_$C(13,10)) Q:E Q ; FCOMP ;Start File Compare at OS level ST4 ;Global Compare, step 4 (s) D MASTER^cQ5 I boot=slave S FILE=$$FILE(3) I '$$TST^cA710(FILE) S K="C:\"_$P(FILE,"\",5,$L(FILE,"\")),E=$$JN^cA710(K) Q ; ACOMP ;Alert if File Compare < 20 KB ST5 ;Global Compare, step 5 (m) D INI^cQ6,MASTER^cQ5 I boot'=master Q S L=0 K R S FILE=$$FILE(4),E=$$FS^cA710(FILE,.K) Q:E Q:K>(20*1024) I '$$TST^cA710(FILE) D S E=$$CF^cA710(FILE) . S E=$$OR^cA710(FILE) Q:E F S E=$$RF^cA710(FILE,.K) Q:E S L=L+1,R(L)=K I L S PG=$T(+0),PN=$P($T(@("T0"_QT)),";",2) D D1015^cANEM0(PG,PN,.R) ; YZ Q ; FILE(X) N K S X=$G(X) D MASTER^cQ5 S K="\\"_slave_"\C$\temp\compare\" I X=0 Q K I X=1 Q K_"checksum.txt" I X=2 Q K_"compare.txt" I X=3 Q K_"compare.bat" I X=4 Q K_"result.txt" I X'?.N Q K_X_"."_$S(boot=master:1,1:2) Q K_"watte.txt" ; ZZ ; 24.08.01 - 9 u 19 * Cache-r3.1.8