| 1 | NVSSTB ;slciofo/mdb-options for VMS/Cache systems to start TM/Broker/MailMan; 04/01/04
 | 
|---|
| 2 |  ;;2.0;EMC SYSTEM UTILITIES; Apr 28, 2003
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ;Options to manually start and stop Taskman, Broker Listener(s) and the
 | 
|---|
| 5 |  ;network mail background listener.
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  ; *****NOTE*****
 | 
|---|
| 8 |  ; additions made by MW@VISN20 on 9/9/04 to include options to
 | 
|---|
| 9 |  ; stop TaskMan and Broker listener(s).
 | 
|---|
| 10 |  ; **************
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  ; the function OS^%ZOSV is not present in DSM systems, check for DSM system...
 | 
|---|
| 13 |  I $ZV'["Cache for OpenVMS" W !,"This routine is for Cache systems only." Q
 | 
|---|
| 14 |  ; VMS/Cache only...
 | 
|---|
| 15 |  I $$OS^%ZOSV()'="VMS" W !,"This routine is for VMS/Cache systems only." Q
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 |  I $G(IOF)="" D HOME^%ZIS
 | 
|---|
| 18 |  S NVSVOL=$ZU(5)
 | 
|---|
| 19 |  S NVSCFG=$P($ZU(86),"*",2)
 | 
|---|
| 20 |  F  D  Q:$D(DIRUT)
 | 
|---|
| 21 |  .I $G(IOF)'="" W @IOF
 | 
|---|
| 22 |  .W !!,$$CJ^XLFSTR("START/STOP BROKER LISTENER(S), TASK MANAGER AND NETWORK MAIL LISTENER",80)
 | 
|---|
| 23 |  .W !!,$$CJ^XLFSTR("** NOTE **",80)
 | 
|---|
| 24 |  .W !,$$CJ^XLFSTR("Task Manager and any Broker listener(s) on this node",80)
 | 
|---|
| 25 |  .W !,$$CJ^XLFSTR("must be started by a call to a VMS command file to insure that",80)
 | 
|---|
| 26 |  .W !,$$CJ^XLFSTR("these processes are started with the appropriate privileges.",80)
 | 
|---|
| 27 |  .W !,$$CJ^XLFSTR("**********",80)
 | 
|---|
| 28 |  .W !!?3,"Current Node : ",$ZU(110)
 | 
|---|
| 29 |  .W !?3,"Namespace    : ",NVSVOL
 | 
|---|
| 30 |  .W !?3,"Cache Config : ",NVSCFG
 | 
|---|
| 31 |  .S DIR(0)="NA^1:7"
 | 
|---|
| 32 |  .S DIR("A",1)="   1 = Manually Start Task Manager"
 | 
|---|
| 33 |  .S DIR("A",2)="   2 = Manually Start Broker Listener(s)"
 | 
|---|
| 34 |  .S DIR("A",3)="   3 = Manually Start Network Mail Listener"
 | 
|---|
| 35 |  .S DIR("A",4)="   4 = Manually Start All (Task Manager, Broker, Network Mail Listener)"
 | 
|---|
| 36 |  .S DIR("A",5)="   5 = Stop Task Manager and Sub-managers"
 | 
|---|
| 37 |  .S DIR("A",6)="   6 = Stop Broker Listener(s)"
 | 
|---|
| 38 |  .S DIR("A",7)="   7 = Exit"
 | 
|---|
| 39 |  .S DIR("A",8)=" "
 | 
|---|
| 40 |  .S DIR("A")="  Select OPTION NUMBER (1-7): "
 | 
|---|
| 41 |  .S DIR("B")=7
 | 
|---|
| 42 |  .S DIR("?")="or enter ""^"" to exit."
 | 
|---|
| 43 |  .S DIR("?",1)="?? Please enter an OPTION NUMBER, 1 through 7"
 | 
|---|
| 44 |  .W ! D ^DIR K DIR
 | 
|---|
| 45 |  .I Y=7 S DIRUT=1
 | 
|---|
| 46 |  .I $D(DIRUT) Q
 | 
|---|
| 47 |  .S NVSANS=Y
 | 
|---|
| 48 |  .I NVSANS=1 D TM Q
 | 
|---|
| 49 |  .I NVSANS=2 D BL Q
 | 
|---|
| 50 |  .I NVSANS=3 D ML Q
 | 
|---|
| 51 |  .I NVSANS=4 D  Q
 | 
|---|
| 52 |  ..D TM
 | 
|---|
| 53 |  ..D BL
 | 
|---|
| 54 |  ..D ML
 | 
|---|
| 55 |  .I NVSANS=5 D STM Q
 | 
|---|
| 56 |  .I NVSANS=6 D SBL
 | 
|---|
| 57 |  K DIRUT,DTOUT,NVSANS,NVSCFG,NVSVOL,X,Y
 | 
|---|
| 58 |  Q
 | 
|---|
| 59 |  ;
 | 
|---|
| 60 | TM ; start Task Manager...
 | 
|---|
| 61 |  N DIR,DIRUT,DTOUT,X,Y
 | 
|---|
| 62 |  I NVSVOL="VAH" D
 | 
|---|
| 63 |  .W !!,"Submitting batch job for USER$:[CACHEMGR]TASKMAN_START.COM to start"
 | 
|---|
| 64 |  .W !,"TaskMan in VAH..."
 | 
|---|
| 65 |  .S X=$ZF(-1,"SUBMIT/USER=CACHEMGR/QUE=SYS$BATCH USER$:[CACHEMGR]TASKMAN_START.COM")
 | 
|---|
| 66 |  I NVSVOL'="VAH" D
 | 
|---|
| 67 |  .W !!,"Submitting batch job for USER$:[CACHEMGR]PLATINUM_TASKMAN_START.COM to"
 | 
|---|
| 68 |  .W !,"start TaskMan in ",NVSVOL,"..."
 | 
|---|
| 69 |  .S X=$ZF(-1,"SUBMIT/USER=CACHEMGR/QUE=SYS$BATCH USER$:[CACHEMGR]PLATINUM_TASKMAN_START.COM")
 | 
|---|
| 70 |  ;I NVSVOL="TST" S X=$ZF(-1,"SUBMIT/USER=CACHEMGR/QUE=SYS$BATCH USER$:[CACHEMGR]TST_TASKMAN_START.COM")
 | 
|---|
| 71 |  ;I NVSVOL'="VAH"&(NVSVOL'="TST") W !!,$C(7),"This Configuration is not VAH or TST."
 | 
|---|
| 72 |  S DIR(0)="EA"
 | 
|---|
| 73 |  S DIR("A")="Press <enter> to return to the main menu..."
 | 
|---|
| 74 |  W ! D ^DIR K DIR
 | 
|---|
| 75 |  Q
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 | BL ;start Broker Listeners...
 | 
|---|
| 78 |  N DIR,DIRUT,DTOUT,X,Y
 | 
|---|
| 79 |  I NVSVOL="VAH" D
 | 
|---|
| 80 |  .W !!,"Submitting batch job for USER$:[CACHEMGR]BROKER_START.COM to start Broker"
 | 
|---|
| 81 |  .W !,"listener(s) in VAH..."
 | 
|---|
| 82 |  .S X=$ZF(-1,"SUBMIT/USER=CACHEMGR/QUE=SYS$BATCH USER$:[CACHEMGR]BROKER_START.COM")
 | 
|---|
| 83 |  I NVSVOL'="VAH" D
 | 
|---|
| 84 |  .W !!,"Submitting batch job for USER$:[CACHEMGR]",NVSVOL,"_BROKER_START.COM to"
 | 
|---|
| 85 |  .W !,"start Broker listener(s) in ",NVSVOL,"..."
 | 
|---|
| 86 |  .S X=$ZF(-1,"SUBMIT/USER=CACHEMGR/QUE=SYS$BATCH USER$:[CACHEMGR]"_NVSVOL_"_BROKER_START.COM")
 | 
|---|
| 87 |  ;I NVSVOL="TST" S X=$ZF(-1,"SUBMIT/USER=CACHEMGR/QUE=SYS$BATCH USER$:[CACHEMGR]TST_BROKER_START.COM")
 | 
|---|
| 88 |  ;I NVSVOL'="VAH"&(NVSVOL'="TST") W !!,$C(7),"This Configuration is not VAH or TST."
 | 
|---|
| 89 |  S DIR(0)="EA"
 | 
|---|
| 90 |  S DIR("A")="Press <enter> to return to the main menu..."
 | 
|---|
| 91 |  W ! D ^DIR K DIR
 | 
|---|
| 92 |  Q
 | 
|---|
| 93 |  ;
 | 
|---|
| 94 | ML ; start network mail listener...
 | 
|---|
| 95 |  W !!,"JOBbing the routine ^XMRONT..."
 | 
|---|
| 96 |  J ^XMRONT::5
 | 
|---|
| 97 |  I $T'=1 W !?2,"ERROR -- the command JOB ^XMRONT failed!"
 | 
|---|
| 98 |  I $T=1 W "JOB command executed successfully."
 | 
|---|
| 99 |  S DIR(0)="EA"
 | 
|---|
| 100 |  S DIR("A")="Press <enter> to return to the main menu..."
 | 
|---|
| 101 |  W ! D ^DIR K DIR
 | 
|---|
| 102 |  Q
 | 
|---|
| 103 |  ;
 | 
|---|
| 104 | STM ; stop Task Manager and Sub-managers...
 | 
|---|
| 105 |  N DIR,DIRUT,DTOUT,NVSTMLIS,NVSTMPID,X,Y
 | 
|---|
| 106 |  D TMSTAT(.NVSTMLIS)
 | 
|---|
| 107 |  I +$G(NVSTMLIS)=0 D  Q
 | 
|---|
| 108 |  .S DIR(0)="EA"
 | 
|---|
| 109 |  .S DIR("A")="Press <enter> to return to main menu..."
 | 
|---|
| 110 |  .W ! D ^DIR K DIR
 | 
|---|
| 111 |  W !
 | 
|---|
| 112 |  S NVSTMNOD=""
 | 
|---|
| 113 |  F  S NVSTMNOD=$O(NVSTMLIS(NVSTMNOD)) Q:NVSTMNOD=""!($D(DIRUT))  D
 | 
|---|
| 114 |  .S DIR(0)="YA"
 | 
|---|
| 115 |  .S DIR("A")="Stop Task Manager in "_NVSTMNOD_"? "
 | 
|---|
| 116 |  .S DIR("B")="NO"
 | 
|---|
| 117 |  .S DIR("?")="Answer YES or NO, or enter ""^"" to abort"
 | 
|---|
| 118 |  .D ^DIR K DIR
 | 
|---|
| 119 |  .I $D(DIRUT) Q
 | 
|---|
| 120 |  .I Y'=1 Q
 | 
|---|
| 121 |  .W !?2,"stopping the manager..."
 | 
|---|
| 122 |  .D SMAN^ZTMKU(NVSTMNOD)
 | 
|---|
| 123 |  .S NVSTMPID=NVSTMLIS(NVSTMNOD)
 | 
|---|
| 124 |  .F I=1:1:10 Q:'$D(^%ZTSCH("STATUS",NVSTMPID))  W "." H 1
 | 
|---|
| 125 |  .I $D(^%ZTSCH("STATUS",NVSTMNOD)) W !?2,"ERROR -- Manager job would not stop!" Q
 | 
|---|
| 126 |  .W "done."
 | 
|---|
| 127 |  .W !?2,"stopping any idle sub-manager(s)..."
 | 
|---|
| 128 |  .D SSUB^ZTMKU(NVSTMNOD)
 | 
|---|
| 129 |  .W "done."
 | 
|---|
| 130 |  K DIRUT,DTOUT,X,Y
 | 
|---|
| 131 |  S DIR(0)="EA"
 | 
|---|
| 132 |  S DIR("A")="Press <enter> to return to the main menu..."
 | 
|---|
| 133 |  W ! D ^DIR K DIR
 | 
|---|
| 134 |  Q
 | 
|---|
| 135 |  ;
 | 
|---|
| 136 | TMSTAT(LIST) ; check and list current Task Manager status...
 | 
|---|
| 137 |  ; LIST = an array name passed by reference into which current TM jobs are listed
 | 
|---|
| 138 |  ; returns LIST=number of TM manager jobs in ^%ZTSCH("STATUS")
 | 
|---|
| 139 |  ;         LIST(node name)=TM job status line from ^%ZTSCH("STATUS",pid)
 | 
|---|
| 140 |  N NVSTMDAT,NVSTMPID
 | 
|---|
| 141 |  S LIST=0
 | 
|---|
| 142 |  W !!,"Current Task Manager status:"
 | 
|---|
| 143 |  I '+$O(^%ZTSCH("STATUS",0)) D  Q
 | 
|---|
| 144 |  .W $C(7)
 | 
|---|
| 145 |  .W !,"**NO TASK MANAGER JOBS FOUND IN ^%ZTSCH(""STATUS"")!**"
 | 
|---|
| 146 |  W !!,"Process ID"
 | 
|---|
| 147 |  W ?20,"Node"
 | 
|---|
| 148 |  W ?35,"Status"
 | 
|---|
| 149 |  S NVSTMPID=0
 | 
|---|
| 150 |  F  S NVSTMPID=$O(^%ZTSCH("STATUS",NVSTMPID)) Q:'NVSTMPID  D
 | 
|---|
| 151 |  .S NVSTMDAT=^%ZTSCH("STATUS",NVSTMPID)
 | 
|---|
| 152 |  .W !,NVSTMPID
 | 
|---|
| 153 |  .W ?20,$P(NVSTMDAT,"^",3)
 | 
|---|
| 154 |  .W ?35,$P(NVSTMDAT,"^",2)," ",$P(NVSTMDAT,"^",4)
 | 
|---|
| 155 |  .S LIST=LIST+1
 | 
|---|
| 156 |  .S LIST($P(NVSTMDAT,"^",3))=NVSTMPID
 | 
|---|
| 157 |  .K NVSTMDAT
 | 
|---|
| 158 |  Q
 | 
|---|
| 159 |  ;
 | 
|---|
| 160 | SBL ; stop broker listener...
 | 
|---|
| 161 |  N base,maxpid,DIR,DIRUT,DTOUT,NVSBDEV,NVSBLIS,NVSBPORT,NVSJPID,NVSROU,X,Y
 | 
|---|
| 162 |  ; search process table for Broker listener(s)...
 | 
|---|
| 163 |  S NVSBLIS=0
 | 
|---|
| 164 |  s base=$v($zu(40,2,47),-2,"S")
 | 
|---|
| 165 |  s maxpid=$v($zu(40,2,118),-2,4)
 | 
|---|
| 166 |  W !!,"Searching process table for any Broker listener(s) running in"
 | 
|---|
| 167 |  W !,"configuration ",NVSCFG,"..."
 | 
|---|
| 168 |  f i=1:1:maxpid s NVSJPID=$v(i*4+base,-3,4) I NVSJPID>0 D
 | 
|---|
| 169 |  .S NVSROU=$ZU(67,5,NVSJPID)
 | 
|---|
| 170 |  .I NVSROU'="XWBTCPL" K NVSROU Q
 | 
|---|
| 171 |  .S NVSBDEV=$ZU(67,7,NVSJPID)
 | 
|---|
| 172 |  .I NVSBDEV="" K NVSBDEV,NVSROU Q
 | 
|---|
| 173 |  .S NVSBLIS=NVSBLIS+1
 | 
|---|
| 174 |  .S NVSBLIS($P(NVSBDEV,"|",3))=""
 | 
|---|
| 175 |  .K NVSBDEV,NVSROU
 | 
|---|
| 176 |  I NVSBLIS=0 W !!,"**NO Broker listener jobs were found here!**"
 | 
|---|
| 177 |  I NVSBLIS>0 D  K DIRUT,DTOUT,X,Y
 | 
|---|
| 178 |  .W !!,"Broker listener job",$S(NVSBLIS>1:"s",1:"")," found on "
 | 
|---|
| 179 |  .W $S(NVSBLIS>1:"these ",1:"this "),"port",$S(NVSBLIS>1:"s:",1:":")
 | 
|---|
| 180 |  .S NVSBPORT=0
 | 
|---|
| 181 |  .F  S NVSBPORT=$O(NVSBLIS(NVSBPORT)) Q:'NVSBPORT  W !?2,NVSBPORT
 | 
|---|
| 182 |  .F  D  Q:$D(DIRUT)
 | 
|---|
| 183 |  ..S DIR(0)="NA^"_+$O(NVSBLIS(0))_":"_+$O(NVSBLIS(""),-1)_"^K:'$D(NVSBLIS(X)) X"
 | 
|---|
| 184 |  ..S DIR("A")="Stop Broker Listener on PORT: "
 | 
|---|
| 185 |  ..I NVSBLIS=1 S DIR("B")=+$O(NVSBLIS(0))
 | 
|---|
| 186 |  ..S DIR("?")="Enter a PORT NUMBER from the list above"
 | 
|---|
| 187 |  ..W ! D ^DIR K DIR
 | 
|---|
| 188 |  ..I $D(DIRUT) Q
 | 
|---|
| 189 |  ..S NVSBPORT=+Y
 | 
|---|
| 190 |  ..W !?2,"Calling STOP^XWBTCP(",NVSBPORT,")..."
 | 
|---|
| 191 |  ..D STOP^XWBTCP(NVSBPORT)
 | 
|---|
| 192 |  ..K NVSBPORT
 | 
|---|
| 193 |  ..I NVSBLIS=1 S DIRUT=1
 | 
|---|
| 194 |  S DIR(0)="EA"
 | 
|---|
| 195 |  S DIR("A")="Press <enter> to return to the main menu..."
 | 
|---|
| 196 |  W ! D ^DIR K DIR
 | 
|---|
| 197 |  Q
 | 
|---|