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