| 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
|
|---|