%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 |