%ZTMS1 ;SEA/RDS-TaskMan: Submanager, (Loop & Get Task) ;10/07/08 15:46
Source file <ZTMS1.m>
| Name | Comments | DBIA/ICR reference | 
|---|---|---|
| BALANCE() | ;GETTASK--check load balance, and wait while Manager waits | |
| SUBMGR | ;START--outer submanager loop | |
| BADTASK | ;JOB--unschedule tasks with bad numbers or incomplete records | |
| NO | ;Don't exit, Update status node | |
| I3 | ||
| I2 | ||
| I5 | ||
| IOQ | ;GETTASK--search Device Waiting List, Lock IO then DEV. | |
| I1() | ;Keep 2 sec apart | |
| JOB | ;GETTASK--search Partition Waiting List | |
| GETTASK | ;SUBMGR--retain the partition; check Waiting Lists every 1 seconds | |
| PDIFF(N,O,T) | ;Positive Diff | |
| TSKSTAT(CODE,MSG) | ;Update task's status | |
| C | ;GETTASK--On C type volume sets, get tasks from Cross-Volume Job List | |
| EXIT() | ;GETTASK--decide whether to exit retention loop | |
| SUB(X) | ;Inc/Dec SUB or return SUB count | |
| DEVLK(X,ZIO,TO) | ;1=Lock/-1=unlock the ^%ZTSCH("DEV",ZIO) node. | |
| JCNT(MAXWAIT) | ;See if less that MaxWait tasks in JOB list p446 | |
| FIRST() | ;See if SM with lowest $J | |
| DIFF(N,O,T) | ;Diff in sec. | |
| IOX | ; | |
| J2 | ||
| J3 | ||
| H0(%) | ;Covert from seconds to $H | |
| H3(%) | ;Convert $H to seconds. | |
| YES | ;EXIT--Yes ;p446 | 
| 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* |