Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ZTM0

ZTM0.m

Go to the documentation of this file.
  1. %ZTM0 ;SEA/RDS-TaskMan: Manager, Part 2 (Begin) ;07/17/08 08:16
  1. ;;8.0;KERNEL;**42,36,67,88,118,127,136,175,275,355,446**;Jul 10, 1995;Build 35
  1. ;Per VHA Directive 2004-038, this routine should not be modified.
  1. ;
  1. START ;Entry Point--start Task Manager at system startup
  1. S $ETRAP="D ER^%ZTM5",^%ZTSCH("ER")="",U="^"
  1. L ^%ZTSCH:10 G:'$T RESTART ;Someone already running
  1. K ^%ZTSCH("DEV"),^("DEVOPEN"),^("LOAD"),^("LOADA"),^("STATUS"),^("STOP"),^("SUB"),^("UPDATE")
  1. S %ZTIME=$$H3^%ZTM($H)
  1. D STATUS^%ZTM("RUN","Startup") ;Move after kill p446
  1. S %ZTLKTM=5 ;Temp value for I6^%ZTM ;p446
  1. D I6^%ZTM ;Handle Persistent Jobs
  1. S ZTSK=0 F S ZTSK=$O(^%ZTSCH("TASK",ZTSK)) Q:'ZTSK D
  1. . D TSKSTAT^%ZTM1("E","Interrupted While Running")
  1. . K ^%ZTSCH("TASK",ZTSK)
  1. K ^%ZTSCH("TASK") ;Remove all p446
  1. D SETUP
  1. I "CFO"[%ZTYPE G BADTYPE ;Moved after SETUP p446
  1. S ^%ZTSCH("IDLE")=0,^%ZTSCH("SUB",%ZTPAIR)=0,^(%ZTPAIR,0)=0
  1. D STATUS^%ZTM("RUN","Startup Hang")
  1. H %ZTPFLG("TM-DELAY") ;Wait for system stability.
  1. S1 ;
  1. D STATUS^%ZTM("RUN","Startup jobs")
  1. ;S %ZTLOOP=0,%ZTRUN=1 D CHECK^%ZTM ;Why? ;p446
  1. D STRTUP
  1. S ZTU="" F S ZTU=$O(^%ZTSCH("C",ZTU)) Q:ZTU="" S ^%ZTSCH("C",ZTU)=0 ;Reset VS counts in C list.
  1. K %ZTI,%ZTY,ZTIO,ZTO,ZTP,ZTSK,ZTU
  1. I %ZTPFLG("XUSCNT") D COUNT^XUSCNT(1)
  1. G ^%ZTM
  1. ;
  1. RESTART ;Entry Point--restart Task Manager
  1. S $ETRAP="D ER^%ZTM5",^%ZTSCH("ER")="",U="^"
  1. K ^%ZTSCH("STATUS"),^("STOP")
  1. S %ZTIME=$$H3^%ZTM($H)
  1. D STATUS^%ZTM("RUN","Restart") ;Move after kill p446
  1. D SETUP
  1. I '$D(^%ZTSCH("IDLE")) S ^%ZTSCH("IDLE")=0
  1. I '$D(^%ZTSCH("SUB",%ZTPAIR)) S ^%ZTSCH("SUB",%ZTPAIR)=0
  1. I "CFO"[%ZTYPE G BADTYPE
  1. I %ZTPFLG("XUSCNT") D COUNT^XUSCNT(1)
  1. G ^%ZTM
  1. ;
  1. ;
  1. SETUP ;Setup Task Manager's Environment
  1. N X,Y,Z,ZT
  1. ST2 S ^%ZTSCH("RUN")=$H,%ZTPAIR="ROU"
  1. D STATUS^%ZTM("RUN","Setup")
  1. D ZOSF I Y]"" D STATUS^%ZTM("PAUSE","The following required ^%ZOSF nodes are undefined: "_Y_".") H 60 G ST2
  1. D UPDATE^%ZTM5 I $D(ZTREQUIR)#2 D STATUS^%ZTM("PAUSE","Required link to "_ZTREQUIR_" is down.") H 60 G ST2
  1. ;Clear the NOT Responding count
  1. S X="" F S X=$O(^%ZTSCH("C",X)) Q:X="" S ^%ZTSCH("C",X)=0
  1. D JOB,NOLOG^%ZOSV S %ZTNLG=Y,DTIME=1,DUZ=0,DUZ(0)="@"
  1. K Z D NAME K X,Y,Z,ZT
  1. Q
  1. STRTUP ;Queue the entries from the STARTUP X-ref
  1. ;After talking with the DBA, All STARTUP jobs will have DUZ=.5
  1. N ZTU,ZTO,ZTSAVE,ZTRTN,DUZ
  1. S DUZ=.5,DUZ(0)="@"
  1. S ZTU="" F S ZTU=$O(^%ZTSCH("STARTUP",ZTU)),ZTO="" Q:ZTU="" F S ZTO=$O(^%ZTSCH("STARTUP",ZTU,ZTO)) Q:ZTO="" D
  1. . S ZTSAVE("XQY")=$P(ZTO,"Q",2) ;This must be set for %ZTLOAD
  1. . S ZTDTH=$H,ZTIO=$P(^%ZTSCH("STARTUP",ZTU,ZTO),"^",2),ZTRTN="ZTSK^XQ1",ZTSAVE($S(ZTO["Q":"XQSCH",1:"XQY"))=+ZTO,ZTUCI=$P(ZTU,","),ZTCPU=$P(ZTU,",",2)
  1. . D ^%ZTLOAD
  1. . Q
  1. Q
  1. ;
  1. ZOSF ;SETUP--determine whether any required ^%ZOSF nodes are missing
  1. S Y=""
  1. F X="ACTJ","OS","PROD","UCI","UCICHECK","VOL" I $D(^%ZOSF(X))[0 S Y=Y_","_X
  1. S:$T(ACTJ^%ZOSV)="" Y=Y_",ACTJ^%ZOSV"
  1. I Y]"" S Y=$E(Y,2,$L(Y))
  1. Q
  1. ;
  1. JOB ;SETUP--setup JOB command
  1. I %ZTOS["OpenM" D Q
  1. . S:'$L(%ZTPFLG("DCL")) %ZTJOB="J ^%ZTMS::5" ;"J ^%ZTMS:ZTUCI:5"
  1. . S:$L(%ZTPFLG("DCL")) %ZTJOB="D ^%ZTMDCL"
  1. . Q
  1. I %ZTOS["GT.M" S %ZTJOB="J GTM^%ZTMS::5",@("$ZINTERRUPT=""I $$JOBEXAM^ZU($ZPOSITION)""") Q
  1. I %ZTOS["VAX DSM" D Q
  1. . S:'$L(%ZTPFLG("DCL")) %ZTJOB="J ^%ZTMS:(OPTION=""/UCI=""_$P(ZTUCI,"","")_""/VOL=""_ZTDVOL):5"
  1. . S:$L(%ZTPFLG("DCL")) %ZTJOB="D ^%ZTMDCL"
  1. . Q
  1. I %ZTOS["MSM" S %ZTJOB="J ^%ZTMS[ZTUCI,ZTDVOL]:%ZTSIZ:5" Q ;Set Maxpartsiz
  1. I %ZTOS["DTM" S %ZTJOB="J ^%ZTMS:(NSPACE=ZTUCI)" Q
  1. S %ZTJOB="J ^%ZTMS::5"
  1. Q
  1. ;
  1. NAME ;Give a name to process.
  1. N $ETRAP,ZQ S $ETRAP="S ZQ=0,$EC="""" Q"
  1. F Z=1:1:9 S X="Taskman "_%ZTVOL_" "_Z,ZQ=1 D SETENV^%ZOSV Q:ZQ
  1. Q
  1. BADTYPE ;Taskman should not run on this type of node.
  1. K ^%ZTSCH("STATUS")
  1. S ^%ZTSCH("RUN")=%ZTPAIR_" is the wrong type in taskman site parameters."
  1. Q
  1. ;
  1. HALT ;Cleanup and halt
  1. I %ZTPFLG("XUSCNT") D COUNT^XUSCNT(-1)
  1. K ^%ZTSCH("STATUS",$J),^%ZTSCH("RUN"),^%ZTSCH("UPDATE",$J)
  1. K ^%ZTSCH("LOADA",%ZTPAIR)
  1. X "HALT"