1 | RGUTRRC ;CAIRO/DKM - Remote routine checksum utility;04-Sep-1998 11:26;DKM
|
---|
2 | ;;2.1;RUN TIME LIBRARY;;Mar 22, 1999
|
---|
3 | ;=================================================================
|
---|
4 | ; Performs a routine checksum on selected routines across all CPUs.
|
---|
5 | ;=================================================================
|
---|
6 | N RGX,RGY,RGRTN,RGCPU,RGUCI,RGCS,RGPID,RGZ,RGZ1,X
|
---|
7 | S RGPID=$J
|
---|
8 | D HOME^%ZIS
|
---|
9 | D TITLE^RGUT("Remote Routine Checksum","1.0")
|
---|
10 | RSEL X ^%ZOSF("RSEL")
|
---|
11 | W !!
|
---|
12 | Q:'$D(^UTILITY(RGPID))
|
---|
13 | K %IS,%ZIS
|
---|
14 | D ^%ZIS
|
---|
15 | G:POP RSEL
|
---|
16 | U IO
|
---|
17 | S RGUCI=$P($ZU(0),","),RGCPU=$P($ZU(0),",",2),RGRTN=$C(1)
|
---|
18 | NXT S RGRTN=$O(^UTILITY(RGPID,RGRTN))
|
---|
19 | I RGRTN="" W !! Q
|
---|
20 | W RGRTN,"..."
|
---|
21 | K RGX,^RGUTL("RRC",RGPID)
|
---|
22 | F RGY="CSA","CSB","CSC","PSA","PSB" D:RGY'=RGCPU JOBIT
|
---|
23 | S RGCS=$$CHKSUM(RGRTN),RGCNT=0
|
---|
24 | W ?15,RGCPU," ",RGCS,!
|
---|
25 | AGAIN I '$D(RGX) W ! G NXT
|
---|
26 | S RGZ="",RGCNT=RGCNT+1
|
---|
27 | I RGCNT>20 D FAIL G NXT
|
---|
28 | H:RGCNT>1 1
|
---|
29 | NXT2 S RGZ=$O(RGX(RGZ))
|
---|
30 | G:RGZ="" AGAIN
|
---|
31 | G:'$D(^RGUTL("RRC",RGPID,RGZ)) NXT2
|
---|
32 | S RGZ1=^(RGZ)
|
---|
33 | K ^(RGZ),RGX(RGZ)
|
---|
34 | I RGCS=RGZ1 W ?15,RGZ," same",!
|
---|
35 | E W ?15,RGZ," different: ",RGZ1," ************",!
|
---|
36 | G NXT2
|
---|
37 | FAIL S RGZ=$O(RGX(RGZ))
|
---|
38 | Q:RGZ=""
|
---|
39 | W ?15,RGZ," failed to report",!
|
---|
40 | G FAIL
|
---|
41 | JOBIT Q:RGY=RGCPU
|
---|
42 | S @$$TRAP^RGZOSF("NOCPU^RGUTRRC")
|
---|
43 | J JOB^RGUTRRC(RGPID,RGRTN)[RGUCI,RGY]::1
|
---|
44 | I '$ZB W "Failed to start remote job on "_RGUCI_","_RGY,!
|
---|
45 | E S RGX(RGY)=""
|
---|
46 | NOCPU Q
|
---|
47 | JOB(RGJ,RGRTN) ;
|
---|
48 | H 1
|
---|
49 | S RGCPU=$P($ZU(0),",",2),@$$TRAP^RGZOSF("JERR^RGUTRRC")
|
---|
50 | I $$TEST^RGZOSF(RGRTN) S ^RGUTL("RRC",RGJ,RGCPU)=$$CHKSUM(RGRTN)
|
---|
51 | E S ^RGUTL("RRC",RGJ,RGCPU)=0
|
---|
52 | Q
|
---|
53 | JERR S ^RGUTL("RRC",RGJ,RGCPU)=$$EC^%ZOSV
|
---|
54 | Q
|
---|
55 | CHKSUM(X) ;
|
---|
56 | N Y
|
---|
57 | X ^%ZOSF("RSUM")
|
---|
58 | Q Y
|
---|