%ZTM ;SEA/RDS-TaskMan: Manager, Part 1 (Main Loop) ;10/02/08 09:00
Source file <ZTM.m>
Name | Comments | DBIA/ICR reference |
---|---|---|
S2 | ||
S1 | ||
IDLE1 | ;only proceed with idle work if 60 seconds since last check
|
|
SCHQ | ;LOOP--Check Schedule List
|
|
I1 | ;clear out old DEV nodes
|
|
I2 | ;job new submanagers cross-volume for each unfinished C list
|
|
I5 | ;Clean up %ZTSCH
|
|
SCHX | ;Clear all locks
|
|
I6 | ;Check on persistent jobs, Locks can take time, Called from %ZTM0 at start.
|
|
IDLE | ;LOOP--DEV Node Maintenance; Backup JOB Commands
|
|
TSKSTAT(CODE,MSG) | ; Update task's status
|
|
CHECK | ;LOOP--Check Status And Update Loop Data
|
|
MON | ;Set Next %ZTMON each Hour
|
|
OOS(BV) | ;Check if Box-Volume is Out Of Service, Return 1 if OOS.
|
|
NEWSUB() | ;See if we need a new submanager
|
|
STATUS(ST,MSG) | ;Record TM status
|
|
H0(%) | ;Covert from seconds to $H
|
|
SUBOK() | ;Check if sub's are starting, return 1 if OK
|
|
DETACH | ;Do slow work in background job
|
|
NEWJOB(ZTUCI,ZTDVOL,ZTNODE) | ;Start a new Job
|
|
DIFF(N,O,T) | ;Diff in sec.
|
|
SEND | ;Send Task To Submanager
|
|
TLOCK(M) | ;Lock/unlock the SCHQ node
|
|
H3(%) | ;Convert $H to seconds.
|
|
LOOP | ;Taskman's Main Loop
|
Name | Field # of Occurrence |
---|---|
$$ACTJ^%ZOSV | CHECK+31, NEWJOB+1 |
REQP^%ZTLOAD3 | I6+3 |
HALT^%ZTM0 | CHECK+3 |
^%ZTM1 | S2+7 |
XLINK^%ZTM2 | SEND+2 |
LINK^%ZTM3 | CHECK+13 |
DAY^%ZTM5 | MON+1 |
HOUR^%ZTM5 | MON+4 |
INHIBIT^%ZTM5 | CHECK+9, CHECK+10 |
PARAMS^%ZTM5 | DETACH+1 |
REQUIR^%ZTM5 | CHECK+11 |
UPDATE^%ZTM5 | CHECK+7 |
$$STOPWT^%ZTM6 | CHECK+24 |
BALANCE^%ZTM6 | CHECK+20 |
CHECK^%ZTM6 | CHECK+29 |
TOUCH^XUSCNT | IDLE1+3 |
Name | Line Occurrences (* Changed, ! Killed) |
---|---|
^%ZIS(14.5 - [#14.5] | CHECK+10 |
^%ZIS(14.6 - [#14.6] | I2+9 |
^%ZIS(14.7 - [#14.7] | OOS+2 |
^%ZTSCH( | S1, S1+1!, S2, S2+1, S2+4!, I5+1, I5+4*! |
^%ZTSCH("C" | CHECK+23, SEND+11*, I2+1, I2+3, I2+4, I2+6, I2+8* |
^%ZTSCH("DEV" | I1+2, I1+3, I1+4! |
^%ZTSCH("IDLE" | IDLE+11, IDLE1+1, IDLE1+2* |
^%ZTSCH("JOB" | SEND+7*, IDLE+8 |
^%ZTSCH("JOBQ" | SEND+4, SEND+13 |
^%ZTSCH("LINK" | CHECK+13, I2+7 |
^%ZTSCH("RUN" | CHECK+4* |
^%ZTSCH("SCHQ" | TLOCK+1, TLOCK+2, I5+2, I5+5 |
^%ZTSCH("STATUS" | STATUS+5* |
^%ZTSCH("STOP" | CHECK+3, IDLE+4 |
^%ZTSCH("SUB" | SUBOK+1, SUBOK+2*, SUBOK+3, SUBOK+4, NEWSUB+2, NEWSUB+3, NEWSUB+4 |
^%ZTSCH("TASK" | I6+1, I6+2, I6+3, I6+4!, I6+5 |
^%ZTSCH("UPDATE" | CHECK+7 |
^%ZTSCH("WAIT" | CHECK+5 |
^%ZTSK - [#14.4] | S2+3, S2+5, S2+6, S2+8, SEND+13, TSKSTAT+1* |
Name | Line Occurrences |
---|---|
$$DIFF | CHECK+13, IDLE1+1, I1+4 |
$$H3 | CHECK+4, SCHQ+1, I5+4 |
$$NEWSUB | SEND+15, IDLE+6 |
$$OOS | SEND+15, I2+7 |
$$TLOCK | SCHQ+2 |
CHECK | LOOP+2, CHECK+5, CHECK+8, CHECK+9, CHECK+11, CHECK+16 |
I1 | IDLE1+4 |
I2 | IDLE1+4 |
I5 | DETACH+2 |
I6 | DETACH+2 |
IDLE | LOOP+2 |
IDLE1 | IDLE+11 |
LOOP | LOOP+3 |
MON | IDLE+2 |
NEWJOB | CHECK+23, SEND+15, IDLE+6, IDLE+9, I2+10 |
S1 | S1+1, S2 |
S2 | S2+3 |
SCHQ | LOOP+2 |
SCHX | SEND+2 |
STATUS | CHECK+5, CHECK+8, CHECK+9, CHECK+11, CHECK+21, CHECK+27, CHECK+29, NEWJOB+3 |
TLOCK | S1, S2+4 |
TSKSTAT | S2+5, S2+6, SEND+6, SEND+9 |
Name | Field # of Occurrence |
---|---|
^( | I5+4 |
^("LINK" | CHECK+13 |
>> | Not killed explicitly |
* | Changed |
! | Killed |
~ | Newed |
Name | Field # of Occurrence |
---|---|
% | OOS+1~, OOS+2*, OOS+3, H3~, H3+1, H0~, H0+1 |
>> %ZTCHK | LOOP+1*, LOOP+2, CHECK+2, SCHQ+1*, SEND+1* |
>> %ZTFALL | LOOP+3* |
>> %ZTIME | CHECK+4*, CHECK+18, CHECK+19, STATUS+4, STATUS+6, SCHQ+1*, S1, IDLE+2, IDLE1+1, IDLE1+2 , I1+4 |
%ZTIO | I1+1~*, I1+2*, I1+3, I1+4 |
>> %ZTJOB | NEWJOB+5 |
>> %ZTLKTM | TLOCK+1, IDLE+11, I5+2, I6+2 |
>> %ZTLOOP | LOOP+2*, CHECK+2 |
>> %ZTMON | S2+10, MON+2*, MON+3 |
>> %ZTMON( | S2+10*, MON+2* |
>> %ZTMON("DAY" | MON+1 |
>> %ZTMON("NEXT" | IDLE+2, MON+3* |
>> %ZTNLG | CHECK+9 |
>> %ZTNODE | SEND+5 |
>> %ZTPAIR | CHECK+3, CHECK+23, STATUS+5, IDLE+4, IDLE+11, SUBOK+1, SUBOK+2, SUBOK+3, SUBOK+4, NEWSUB+2 , NEWSUB+3, NEWSUB+4 |
>> %ZTPFLG("BAL" | CHECK+16 |
>> %ZTPFLG("BI" | CHECK+19, CHECK+24 |
>> %ZTPFLG("JLC" | CHECK+30*, CHECK+31 |
>> %ZTPFLG("LBT" | CHECK+18, CHECK+19* |
>> %ZTPFLG("MINSUB" | NEWSUB+5 |
>> %ZTPFLG("Status" | STATUS+4, STATUS+6* |
>> %ZTPFLG("StatusM" | STATUS+3, STATUS+6* |
>> %ZTPFLG("XUSCNT" | IDLE1+3 |
>> %ZTREJCT | S2+8 |
>> %ZTRUN | LOOP+1*, CHECK+27, CHECK+28, CHECK+31*, NEWJOB+1*, NEWJOB+3 |
>> %ZTSLO | NEWJOB+5 |
>> %ZTUCI | CHECK+23, IDLE+6, IDLE+9 |
>> %ZTVLI | CHECK+8 |
>> %ZTVMJ | CHECK+31, NEWJOB+1 |
>> %ZTVOL | CHECK+10, CHECK+23, SEND+2, IDLE+6, IDLE+9 |
%ZTVS | I6+7! |
BV | OOS~, OOS+1, OOS+2 |
C | IDLE+1~, IDLE+8*, IDLE+9* |
CODE | TSKSTAT~, TSKSTAT+1 |
F | STATUS+1~, STATUS+3*, STATUS+4 |
IO | SCHQ+1*, SEND+7, SEND+11 |
M | TLOCK~, TLOCK+1 |
MSG | STATUS~, STATUS+3, STATUS+5, STATUS+6, TSKSTAT~, TSKSTAT+1 |
N | DIFF~, DIFF+1, DIFF+2 |
O | DIFF~, DIFF+1, DIFF+2 |
R | IDLE+1~, IDLE+8*, IDLE+9* |
ST | STATUS~, STATUS+5 |
SUBS | NEWSUB+1~, NEWSUB+3*, NEWSUB+5 |
T | CHECK+24~*, IDLE+1~, IDLE+8*, IDLE+9, DIFF~, DIFF+1, SUBOK+1~*, SUBOK+3, NEWSUB+1~, NEWSUB+2* , NEWSUB+4 |
U | S2+6, OOS+3, TSKSTAT+1 |
X | I1+1~, I1+3*, I1+4, I2+6*, I2+7, I2+8, I5+3~, I5+4* |
Y | I2+2~ |
>> ZTCVOL | IDLE+3* |
>> ZTDTH | SCHQ+1*, S1*, S1+1, S2, S2+1, S2+4, SEND+7, SEND+11, I5+1*, I5+4 |
ZTDVOL | SEND+2, SEND+10, SEND+15, I2+5*, I2+7, I2+9, I2+10, NEWJOB~, NEWJOB+4* |
>> ZTJOBIT | SEND+2 |
ZTNODE | SEND+5, SEND+10, SEND+15, I2+2~, I2+5*, I2+10, NEWJOB~, NEWJOB+4* |
>> ZTOVERLD | CHECK+16, CHECK+17*, CHECK+20 |
>> ZTPAIR | CHECK+4*, SEND+1*, SEND+10*, SEND+11, SEND+15 |
>> ZTREC | IDLE+3* |
ZTREP | SCHX+1! |
>> ZTREQUIR | CHECK+11 |
ZTSK | SCHQ+1*, S1*, S2*, S2+1, S2+3, S2+4, S2+5, S2+6, S2+8, SEND+7 , SEND+11, SEND+13, TSKSTAT+1, I5+3~, I5+4*, I6+1*, I6+2, I6+3, I6+4, I6+5 |
>> ZTST | S2+1* |
ZTUCI | SEND+15, I2+2~, I2+9*, I2+10, NEWJOB~, NEWJOB+4* |
ZTVOL | I2+2~, I2+3*, I2+4, I2+5, I2+6, I2+7, I2+8 |
>> ZTYPE | SEND+5, SEND+15 |