%ZTMS1 ;SEA/RDS-TaskMan: Submanager, (Loop & Get Task) ;10/07/08 15:46
Source file <ZTMS1.m>
action | A | extended action | Ea | event driver | Ed | subscriber | Su | protocol | O | limited protocol | LP | run routine | RR | broker | B | edit | E | server | Se | P | screenman | SM | inquire | I |
Name | Comments | DBIA/ICR reference |
---|---|---|
SUBMGR | ;START--outer submanager loop
|
|
GETTASK | ;SUBMGR--retain the partition; check Waiting Lists every 1 seconds
|
|
EXIT() | ;GETTASK--decide whether to exit retention loop
|
|
NO | ;Don't exit, Update status node
|
|
YES | ;EXIT--Yes ;p446
|
|
C | ;GETTASK--On C type volume sets, get tasks from Cross-Volume Job List
|
|
BALANCE() | ;GETTASK--check load balance, and wait while Manager waits
|
|
JOB | ;GETTASK--search Partition Waiting List
|
|
J2 | ||
J3 | ||
BADTASK | ;JOB--unschedule tasks with bad numbers or incomplete records
|
|
IOQ | ;GETTASK--search Device Waiting List, Lock IO then DEV.
|
|
I1() | ;Keep 2 sec apart
|
|
I2 | ||
I3 | ||
I5 | ||
IOX | ;
|
|
DEVLK(X,ZIO,TO) | ;1=Lock/-1=unlock the ^%ZTSCH("DEV",ZIO) node.
|
|
SUB(X) | ;Inc/Dec SUB or return SUB count
|
|
JCNT(MAXWAIT) | ;See if less that MaxWait tasks in JOB list p446
|
|
PDIFF(N,O,T) | ;Positive Diff
|
|
DIFF(N,O,T) | ;Diff in sec.
|
|
TSKSTAT(CODE,MSG) | ;Update task's status
|
|
H3(%) | ;Convert $H to seconds.
|
|
H0(%) | ;Covert from seconds to $H
|
|
FIRST() | ;See if SM with lowest $J
|
Name | Line Occurrences (* Changed, ! Killed) |
---|---|
^%ZTSCH("C" | C+2, C+3, C+4*, C+5, C+6, C+9!, C+12, C+14!, C+18, J3+9 , J3+10*, J3+11 |
^%ZTSCH("DEV" | DEVLK+1, DEVLK+2 |
^%ZTSCH("DEVTRY" | I2+4* |
^%ZTSCH("IO" | IOQ+1, IOQ+3, IOQ+4, IOQ+5*, IOQ+6, I2, I2+1, I2+2, I3, I5 |
^%ZTSCH("JOB" | GETTASK+3, J2, J3, J3+2, J3+4, J3+5!, BADTASK+1, BADTASK+3!, JCNT+1 |
^%ZTSCH("JOBQ" | JOB+2, J2, J3+6 |
^%ZTSCH("LOADA" | BALANCE+4, BALANCE+5 |
^%ZTSCH("NO-OPTION" | EXIT+1 |
^%ZTSCH("STOP" | GETTASK+5, EXIT+5 |
^%ZTSCH("SUB" | NO+1, NO+2*, NO+4, SUB+1, SUB+2, SUB+5*, SUB+8*!, SUB+11, FIRST+1 |
^%ZTSCH("SUBLK" | NO+3, SUB+4, SUB+9 |
^%ZTSCH("WAIT" | GETTASK+4 |
^%ZTSK - [#14.4] | EXIT+1, C+7, C+8, C+11, J3+1, J3+2, J3+3, J3+8, J3+11, BADTASK+2 , I5+1, I5+2, TSKSTAT+1* |
Name | Line Occurrences |
---|---|
$$BALANCE | GETTASK+8 |
$$DEVLK | I2+3 |
$$DIFF | PDIFF+1 |
$$EXIT | GETTASK+3 |
$$FIRST | GETTASK+3 |
$$H3 | GETTASK+5 |
$$I1 | IOQ+5 |
$$JCNT | GETTASK+8 |
$$PDIFF | I1+2 |
$$SUB | EXIT+7 |
BADTASK | J3+3 |
C | GETTASK+6 |
DEVLK | BADTASK+5, I2+5, I3 |
GETTASK | SUBMGR+1 |
I2 | I2+1, I2+3, I2+5, I3 |
I3 | I5 |
I5 | I5+1, I5+2 |
IOQ | GETTASK+9 |
IOX | I2 |
J2 | J3 |
J3 | J3+1, J3+2, J3+3 |
JOB | GETTASK+9 |
NO | EXIT+6 |
SUB | GETTASK+1, GETTASK+11 |
SUBMGR | SUBMGR+5 |
TSKSTAT | C+8, BADTASK+2 |
YES | EXIT+4, EXIT+5, EXIT+7 |
>> | Not killed explicitly |
* | Changed |
! | Killed |
~ | Newed |
Name | Field # of Occurrence |
---|---|
% | GETTASK+3*, J3+8*, J3+9, J3+10, J3+11, SUB+1~, SUB+2*, SUB+5, SUB+8, SUB+12 , H3~, H3+1, H0~, H0+1 |
>> %ZTIME | GETTASK+5*, IOQ+4, I1+2, I2+4, I5+3 |
>> %ZTIO | C+12*, C+13, J3+4*, J3+10, J3+12*, J3+14, BADTASK+1*, BADTASK+5, IOQ+4*, IOQ+5 , I2*, I2+1, I2+2, I2+3, I2+4, I2+5, I3, I5 |
CODE | TSKSTAT~, TSKSTAT+1 |
>> IOT | I2+2*, I2+3, I2+5 |
MAXWAIT | JCNT~, JCNT+2, JCNT+3 |
MSG | TSKSTAT~, TSKSTAT+1 |
N | PDIFF~, PDIFF+1, DIFF~, DIFF+1, DIFF+2 |
O | PDIFF~, PDIFF+1, DIFF~, DIFF+1, DIFF+2 |
>> STATUS | SUBMGR+2*, SUBMGR+4*, GETTASK+4*, GETTASK+8*, NO+2, C+1*, C+3*, JOB+1*, JOB+2*, J3+1* , J3+2*, J3+4*, IOQ+3*, SUB+5 |
>> STATUS("Bal" | NO+2, BALANCE+2*, BALANCE+5*, BALANCE+6, BALANCE+7 |
T | PDIFF~, PDIFF+1, DIFF~, DIFF+1 |
TO | DEVLK~, DEVLK+2 |
U | J3+8, TSKSTAT+1 |
X | I2+5*, DEVLK~, DEVLK+1, SUB~, SUB+3, SUB+7, SUB+12 |
X1 | I1+1~, I2+5* |
>> Y | I2+5 |
Z2 | JCNT+1~, JCNT+2*, JCNT+3 |
Z3 | JCNT+1~*, JCNT+2* |
ZIO | DEVLK~, DEVLK+1, DEVLK+2 |
>> ZRT | GETTASK+3*, GETTASK+8*, EXIT+6 |
>> ZTDEVN | C+13*, J3+14*, BADTASK+1* |
ZTDEVOK | I1+1~, I2+5* |
>> ZTDTH | EXIT+2, C+4*, C+5*, C+6, C+9, C+12, C+14, JOB+1*, J2*, J3 , J3+2, J3+4, J3+5, J3+10, BADTASK+1, BADTASK+3, I2*, I3*, I5 |
>> ZTH | IOQ+4*, IOQ+5, I5+3* |
>> ZTI | IOQ+4*, I1+2 |
>> ZTLKTM | C+3, JOB+2, IOQ+3, DEVLK+2 |
>> ZTNODE | J3+8 |
>> ZTPAIR | GETTASK+5, EXIT+5, C+2, C+3, C+4, C+5, C+6, C+9, C+12, C+14 , C+18, BALANCE+1, BALANCE+5 |
>> ZTPFLG("BalLimit" | GETTASK+8 |
>> ZTPFLG("HOME" | NO+1, NO+2, NO+3, NO+4, SUB+1, SUB+2, SUB+4, SUB+5, SUB+8, SUB+9 , SUB+11, FIRST+1 |
>> ZTPFLG("MIN" | EXIT+7 |
>> ZTPFLG("RT" | EXIT+6 |
>> ZTPFLG("XUSCNT" | NO+3 |
>> ZTQUEUED | C+12*, JOB+1*, J3*, J3+4*, BADTASK+4*, I5+2* |
>> ZTQUIT | SUBMGR+3 |
>> ZTREC | J3+8* |
>> ZTSK | SUBMGR+1, SUBMGR+2, GETTASK+1*, GETTASK+5*, GETTASK+6, GETTASK+9, EXIT+1, EXIT+2*, EXIT+4, C+1* , C+5*, C+6*, C+7, C+8, C+9*, C+11, C+12, C+14, JOB+1*, J2* , J3*, J3+1, J3+2, J3+3, J3+4, J3+5, J3+8, J3+10, J3+11, J3+12* , BADTASK+1, BADTASK+2, BADTASK+3, IOQ+1*, I3*, I5*, I5+1, I5+2, TSKSTAT+1 |
>> ZTYPE | GETTASK+6 |
>> ZX | C+6*, C+15* |