Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: KBANTCLN

KBANTCLN.m

Go to the documentation of this file.
  1. KBANTCLN ; VEN/SMH - Clean Taskman Environment ;2018-03-21 10:57 AM
  1. ;;nopackage;0.2
  1. ; License: Public Domain
  1. ; Author not responsible for use of this routine.
  1. ; Author coyly recommends not using this on production accounts.
  1. ;
  1. ; This routine cleans up Taskman globals for a new environment.
  1. W "WARNING: DO NOT RUN THIS ON A PRODUCTION ENVIRONMENT.",!
  1. ;
  1. N VOL,UCI,SITENUMBER,SITENAME,FQDN
  1. R "VOL: ",VOL,!
  1. R "UCI: ",UCI,!
  1. R "SITE NUMBER: ",SITENUMBER,!
  1. R "SITE NAME: ",SITENAME,!
  1. R "SITE DOMAIN: ",FQDN,!
  1. D START(VOL,UCI,SITENUMBER,SITENAME,FQDN)
  1. QUIT
  1. ;
  1. START(VOL,UCI,SITENUMBER,SITENAME,FQDN,SOFTCLN)
  1. I $G(VOL)="" S VOL="ROU"
  1. I $G(UCI)="" S UCI="VAH"
  1. I $G(SITENUMBER)="" S SITENUMBER=999
  1. I $G(SITENAME)="" S SITENAME="DEMO SYSTEM"
  1. I $G(FQDN)="" S FQDN="LOCALHOST"
  1. I $G(SOFTCLN)="" S SOFTCLN=0
  1. S IO=$P,U="^"
  1. D ZTMGRSET(VOL,UCI)
  1. D DINIT(SITENUMBER,SITENAME)
  1. D ZUSET
  1. D MSP
  1. D TASKMAN(SOFTCLN)
  1. D DEVCLEAN
  1. QUIT
  1. ;
  1. ZTMGRSET(VOL,UCI) ; Silent ZTMGRSET Replacement
  1. ; NB: OS 3 is Cache
  1. ; OS 8 is GT.M/Unix
  1. ;
  1. K ^%ZOSF
  1. N ZTOS
  1. N ZTMODE S ZTMODE=1
  1. N SCR S SCR=" I 1"
  1. N %S,%D
  1. I $L($SY,":")=2 D ; D 3^ZTMGRSET
  1. . S ZTOS=3
  1. . N I,X F I=1:2 S Z=$P($T(Z+I^ZOSFONT),";;",2) Q:Z="" S X=$P($T(Z+1+I^ZOSFONT),";;",2,99) S ^%ZOSF(Z)=X
  1. . S ^%ZOSF("GSEL")="K ^CacheTempJ($J),^UTILITY($J) D ^%SYS.GSET M ^UTILITY($J)=CacheTempJ($J)"
  1. . S ^%ZOSF("OS")="OpenM-NT^18"
  1. . S %S="ZOSVONT^ZTBKCONT^ZIS4ONT^ZISFONT^ZISHONT^XUCIONT"
  1. . D DES^ZTMGRSET,MOVE^ZTMGRSET
  1. . S %S="ZISTCPS^ZTMDCL",%D="%ZISTCPS^%ZTMDCL"
  1. . D MOVE^ZTMGRSET
  1. . D RUM^ZTMGRSET
  1. ;
  1. ;
  1. ;
  1. I +$SY=47 D ; 8^ZTMGRSET
  1. . S ZTOS=8
  1. . N I,X F I=1:2 S Z=$P($T(Z+I^ZOSFGUX),";;",2) Q:Z="" S X=$P($T(Z+1+I^ZOSFGUX),";;",2,99) S ^%ZOSF(Z)=X
  1. . S ^%ZOSF("OS")="GT.M (Unix)^19"
  1. . S ^%ZOSF("TMP")="/tmp/"
  1. . ;
  1. . S %ZE=".m" D init^%RSEL
  1. . S %S="ZOSVGUX^^ZIS4GTM^ZISFGTM^ZISHGUX^XUCIGTM"
  1. . D DES^ZTMGRSET,MOVE^ZTMGRSET
  1. . S %S="ZOSV2GTM^ZISTCPS",%D="%ZOSV2^%ZISTCPS"
  1. . D MOVE^ZTMGRSET
  1. . ;
  1. S %S="DIDT^DIDTC^DIRCR",%D="%DT^%DTC^%RCR"
  1. D MOVE^ZTMGRSET
  1. D ALL^ZTMGRSET
  1. D GLOBALS^ZTMGRSET
  1. S (^%ZOSF("MGR"),^%ZOSF("PROD"))=UCI_","_VOL
  1. S ^%ZOSF("VOL")=VOL
  1. D MES^ZTMGRSET("ALL DONE",1)
  1. Q
  1. ;
  1. DINIT(SITENUMBER,SITENAME) ; Silent Dinit Replacement
  1. S ^DD("SITE")=SITENAME
  1. S ^DD("SITE",1)=SITENUMBER
  1. D
  1. . I +$SY=47 S ^DD("OS")=$$FIND1^DIC(.7,,"QX","GT.M(UNIX)")
  1. . I +$SY=0 S ^DD("OS")=$$FIND1^DIC(.7,,"QX","CACHE/OpenM")
  1. D:$T(NOASK^DINIT)]"" NOASK^DINIT
  1. ;
  1. ; Fix ZSAVE bug causing END tag in TIUXRC2 to appear twice - % not newed (https://groups.google.com/forum/#!topic/hardhats/FEeTqYJZVSQ)
  1. I $P($T(+2^DI),";",3)="22.0" S $P(^DD("OS",19,"ZS"),"%I")="N %,"
  1. QUIT
  1. ;
  1. ZUSET ;
  1. D POST^ZUSET
  1. QUIT
  1. ;
  1. TASKMAN(SOFTCLN) ; Taskman Stuff --> Ends at TEND
  1. CONST ; Constant Integers
  1. N KMAXJOB S KMAXJOB=30 ; Maximum M processes on the system
  1. ;
  1. ENV ; We get environment variables here.
  1. S U="^"
  1. ;
  1. N Y D GETENV^%ZOSV ; Y=UCI^VOL^NODE^BOX LOOKUP
  1. N UCI S UCI=$P(Y,U)
  1. N VOL S VOL=$P(Y,U,2)
  1. N NODE S NODE=$P(Y,U,3) ; Cache Namespace on Cache; $gtm_sysid on GT.M.
  1. N BOX S BOX=$P(Y,U,4) ; VOL:NODE
  1. ;
  1. KSP ; Kernel System Parameters cleanup. Fall through.
  1. N KBANI S KBANI=0
  1. N GREFC S GREFC=$$ROOT^DILFD(8989.304,",1,",1) ; Closed File Root for Volume Multiple
  1. N GREFO S GREFO=$$ROOT^DILFD(8989.304,",1,",0) ; Open File Root for Volume Multiple
  1. F S KBANI=$O(@GREFC@(KBANI)) Q:'KBANI D
  1. . N DA,DIK S DA(1)=1,DA=KBANI,DIK=GREFO D ^DIK ; Kill each entry in Vol subfile
  1. ;
  1. ; DEBUG.ASSERT - Make sure that the file is empty
  1. I $D(@GREFC)#10 S $EC=",U1,"
  1. ; DEBUG.ASSERT
  1. ;
  1. N KBANFDA
  1. S KBANFDA(8989.304,"+1,1,",.01)=VOL
  1. S KBANFDA(8989.304,"+1,1,",2)=30 ; 30 jobs by default.
  1. ;
  1. N KBANERR ; For errors
  1. D UPDATE^DIE("E",$NA(KBANFDA),"",$NA(KBANERR)) ; File data
  1. I $D(KBANERR) S $EC=",U1," ; if error filing, crash
  1. ;
  1. ; DEFAULT AUTO SIGN-ON -> Turn off. Causes problems with internet machines.
  1. K KBANFDA,KBANERR
  1. S KBANFDA(8989.3,1_",",218)="d"
  1. ;
  1. ; DNS
  1. S KBANFDA(8989.3,1_",",51)="9.9.9.9"
  1. ;
  1. ; Primary HFS Directory
  1. ; NB: Never tested Cache/NT with c:\windows\temp. I don't have it anywhere to check.
  1. N OS S OS=$$VERSION^%ZOSV(1)
  1. S KBANFDA(8989.3,1_",",320)=$S(OS["Linux":"/dev/shm/",OS["NT":"c:\windows\temp\",1:"/tmp/") ; $I
  1. ;
  1. D FILE^DIE(,$NA(KBANFDA),$NA(KBANERR))
  1. I $D(KBANERR) S $EC=",U1," ; if error filing, crash
  1. ;
  1. F14P5 ; 14.5 clean-up. Fall through.
  1. D KF(14.5) ; Bye bye file 14.5
  1. ;
  1. N KBANFDA
  1. S KBANFDA(14.5,"+1,",.01)=VOL ; Volume Set
  1. S KBANFDA(14.5,"+1,",.1)="GENERAL PURPOSE VOLUME SET" ; Type
  1. S KBANFDA(14.5,"+1,",1)="NO" ; Inhibit Logons?
  1. S KBANFDA(14.5,"+1,",2)="" ; Link Access?
  1. S KBANFDA(14.5,"+1,",3)="NO" ; Out of Service?
  1. S KBANFDA(14.5,"+1,",4)="NO" ; Required Volume Set
  1. S KBANFDA(14.5,"+1,",5)=UCI ; Taskman Files UCI
  1. S KBANFDA(14.5,"+1,",6)="" ; Taskman Files Volume Set
  1. S KBANFDA(14.5,"+1,",7)="" ; Replacement Volume Set
  1. S KBANFDA(14.5,"+1,",8)=0 ; Days to keep old tasks
  1. S KBANFDA(14.5,"+1,",9)="Yes" ; Signon/Production Volume Set
  1. ;
  1. N KBANERR ; For errors
  1. D UPDATE^DIE("E",$NA(KBANFDA),"",$NA(KBANERR)) ; File data
  1. I $D(KBANERR) S $EC=",U1," ; if error filing, crash
  1. ;
  1. F14P6 ; 14.6 clean-up. Fall through
  1. D KF(14.6) ; Bye bye file 14.6
  1. ;
  1. F14P7 ; 14.7 clean-up. Fall through
  1. D KF(14.7) ; Bye bye file 14.7
  1. ;
  1. N KBANFDA
  1. S KBANFDA(14.7,"+1,",.01)=BOX ;BOX-VOLUME PAIR (RF), [0;1]
  1. S KBANFDA(14.7,"+1,",1)="" ;RESERVED (S), [0;2]
  1. S KBANFDA(14.7,"+1,",2)="" ;LOG TASKS? (S), [0;3]
  1. S KBANFDA(14.7,"+1,",3)="" ;DEFAULT TASK PRIORITY (NJ2,0), [0;4]
  1. S KBANFDA(14.7,"+1,",4)="" ;TASK PARTITION SIZE (NJ3,0), [0;5]
  1. S KBANFDA(14.7,"+1,",5)=0 ;SUBMANAGER RETENTION TIME (NJ3,0), [0;6] TODO: Better values for Cache
  1. S KBANFDA(14.7,"+1,",6)=.80*$$KRNMAXJ(VOL)\1 ;TASKMAN JOB LIMIT (RNJ4,0), [0;7] 80 % OF Kernel Job Limit
  1. S KBANFDA(14.7,"+1,",7)=0 ;TASKMAN HANG BETWEEN NEW JOBS (NJ2,0), [0;8]
  1. S KBANFDA(14.7,"+1,",8)="G" ;MODE OF TASKMAN (RS), [0;9]
  1. S KBANFDA(14.7,"+1,",9)="" ;VAX ENVIROMENT FOR DCL (F), [0;10]
  1. S KBANFDA(14.7,"+1,",10)="" ;OUT OF SERVICE (RS), [0;11]
  1. S KBANFDA(14.7,"+1,",11)=0 ;MIN SUBMANAGER CNT (NJ2,0), [0;12]
  1. S KBANFDA(14.7,"+1,",12)="" ;TM MASTER (P14.7'), [0;13]
  1. S KBANFDA(14.7,"+1,",13)="" ;Balance Interval (NJ3,0), [0;14]
  1. S KBANFDA(14.7,"+1,",21)="" ;LOAD BALANCE ROUTINE (F), [2;E1,75]
  1. S KBANFDA(14.7,"+1,",31)=1 ;Auto Delete Tasks (S), [3;1]
  1. S KBANFDA(14.7,"+1,",32)=1 ;Manager Startup Delay (NJ3,0), [3;2]
  1. ;
  1. N KBANERR ; For errors
  1. D UPDATE^DIE("",$NA(KBANFDA),"",$NA(KBANERR)) ; File data (Internal Format)
  1. I $D(KBANERR) S $EC=",U1," ; if error filing, crash
  1. ;
  1. I SOFTCLN D SOFTCLN QUIT
  1. ;
  1. ZTSK K ^%ZTSK ; ^%ZTSK clean-up
  1. ZTSCH K ^%ZTSCH ; ^%ZTSCH clen-up
  1. ;
  1. F19P2 ; 19.2 clean-up; Fall through.
  1. N GREFC S GREFC=$$ROOT^DILFD(19.2,"",1) ; Closed File Root for Option Scheduling
  1. N GREFO S GREFO=$$ROOT^DILFD(19.2,"",0) ; Open File Root for Option Scheduling
  1. ;
  1. ; Walk through entries
  1. N KBANI S KBANI=0
  1. F S KBANI=$O(@GREFC@(KBANI)) Q:'KBANI D
  1. . N DA,DIK S DA=KBANI,DIK=GREFO D ^DIK ; Kill each entry
  1. ;
  1. N KBANI,OPT
  1. N KBANFDA
  1. F KBANI=1:1 S OPT=$T(F19P2OPT+KBANI) Q:$P(OPT,";;",2)="<<END>>" D
  1. . N NODE S NODE=$P(OPT,";;",2) ; Node
  1. . N OS S OS=$P(NODE,U,4) ; M VM (Open-NT or GT.M)
  1. . I $L(OS),^%ZOSF("OS")'[OS QUIT ; If OS is defined and it's not ours, quit
  1. . ;
  1. . N NAME S NAME=$P(NODE,U)
  1. . N STARTUP,TIME
  1. . D
  1. . . N N2 S N2=$P(NODE,U,2)
  1. . . S STARTUP=$S(N2="S":"STARTUP",1:"")
  1. . . S TIME=$S(N2'="S":N2,1:"")
  1. . ;
  1. . N RESCHFREQ S RESCHFREQ=$P(NODE,U,3)
  1. . N OS S OS=$P(NODE,U,4)
  1. . ;
  1. . S KBANFDA(19.2,"+"_KBANI_",",.01)=NAME ; NAME (R*P19'), [0;1]
  1. . S KBANFDA(19.2,"+"_KBANI_",",2)=TIME ; QUEUED TO RUN AT WHAT TIME (DX), [0;2]
  1. . S KBANFDA(19.2,"+"_KBANI_",",6)=RESCHFREQ ; RESCHEDULING FREQUENCY (FX), [0;6]
  1. . S KBANFDA(19.2,"+"_KBANI_",",9)=$G(STARTUP) ; SPECIAL QUEUEING (SX), [0;9]
  1. ;
  1. N KBANERR ; For errors
  1. D UPDATE^DIE("E",$NA(KBANFDA),"",$NA(KBANERR)) ; File data (External Format)
  1. I $D(KBANERR) S $EC=",U1," ; if error filing, crash
  1. ;
  1. TEND QUIT ; Taskman END
  1. ;
  1. MSP ; Mailman Site Parameters Clean-up
  1. N KBANFDA S KBANFDA(4.3,"1,",7.5)="@" ; CPU/VOL in MSP
  1. N KBANERR
  1. D FILE^DIE("",$NA(KBANFDA),$NA(KBANERR))
  1. I $D(KBANERR) S $EC=",U1,"
  1. QUIT
  1. ;
  1. DEVCLEAN ; Device Cleanup
  1. DEVVOL ; Delete Volume field for each device.
  1. N KBANI S KBANI=0
  1. N KBANFDA
  1. F S KBANI=$O(^%ZIS(1,KBANI)) Q:'KBANI S KBANFDA(3.5,KBANI_",",1.9)="@"
  1. N KBANERR
  1. D FILE^DIE("",$NA(KBANFDA),$NA(KBANERR))
  1. I $D(KBANERR) S $EC=",U1,"
  1. ;
  1. DEVNULL ; Fix up null devices
  1. D FIND^DIC(3.5,,,"PQM","NULL")
  1. ;
  1. ; Remove old nulls
  1. N Z,FDA
  1. N KBANI F KBANI=0:0 S KBANI=$O(^TMP("DILIST",$J,KBANI)) Q:'KBANI S Z=^(KBANI,0) D
  1. . N IEN S IEN=$P(Z,U)
  1. . S FDA(3.5,IEN_",",.01)="ZZNULL"
  1. D FILE^DIE(,$NA(FDA))
  1. ;
  1. ; Find correct null (if present)
  1. N NULL
  1. I $P(^%ZOSF("OS"),U,2)=19 S NULL="/dev/null" ; GT.M
  1. I $P(^%ZOSF("OS"),U,2)=18,$$VERSION^%ZOSV(1)'["NT" S NULL="/dev/null" ; Cache non-NT
  1. I $P(^%ZOSF("OS"),U,2)=18,$$VERSION^%ZOSV(1)["NT" S NULL="//./NUL" ; Cache NT
  1. D FIND^DIC(3.5,,,"PQM",NULL)
  1. ;
  1. I +^TMP("DILIST",$J,0)>1 D
  1. . N KBANI F KBANI=1:0 S KBANI=$O(^TMP("DILIST",$J,KBANI)) Q:'KBANI S Z=^(KBANI,0) D
  1. .. N IEN S IEN=$P(Z,U)
  1. .. S FDA(3.5,IEN_",",.01)="ZZNULL"
  1. . D FILE^DIE(,$NA(FDA))
  1. ;
  1. S FDA(3.5,"?+1,",.01)="NULL" ; NAME
  1. S FDA(3.5,"?+1,",.02)="BIT BUCKET" ; LOCATION
  1. S FDA(3.5,"?+1,",1)=NULL ; $I
  1. S FDA(3.5,"?+1,",1.95)="@" ; SIGN-ON/SYSTEM DEVICE
  1. S FDA(3.5,"?+1,",2)="TERMINAL" ; TYPE
  1. S FDA(3.5,"?+1,",3)="P-OTHER" ; SUBTYPE
  1. S FDA(3.5,"?+1,",51)="@" ; OPEN COUNT
  1. N ERR
  1. D UPDATE^DIE("E",$NA(FDA),,$NA(ERR))
  1. I $D(DIERR) ZWRITE ERR
  1. ;
  1. DEVHFS ; Fix up HFS device
  1. N OS S OS=$$VERSION^%ZOSV(1)
  1. N HFSSUBTYPE S HFSSUBTYPE=$$FIND1^DIC(3.2,,"PQX","P-HFS/80/99999")
  1. I 'HFSSUBTYPE S HFSSUBTYPE=$$FIND1^DIC(3.2,,"PQX","P-OTHER")
  1. N OPENPAR S OPENPAR=$S($P(^%ZOSF("OS"),U,2)=19:"(nowrap:stream:newversion)",$P(^%ZOSF("OS"),U,2)=18:"""NWS""") ; Yes, crash if not 18 or 19.
  1. ;
  1. N FDA
  1. S FDA(3.5,"?+1,",.01)="HFS" ; NAME
  1. S FDA(3.5,"?+1,",.02)="Host File Device" ; LOCATION
  1. S FDA(3.5,"?+1,",1)=$S(OS["Linux":"/dev/shm/hfs.dat",OS["NT":"c:\hfs.dat",1:"/tmp/hfs.dat") ; $I
  1. S FDA(3.5,"?+1,",1.95)="@" ; SIGN-ON/SYSTEM DEVICE
  1. S FDA(3.5,"?+1,",2)="HOST FILE SERVER" ; TYPE
  1. S FDA(3.5,"?+1,",3)="`"_HFSSUBTYPE ; SUBTYPE
  1. S FDA(3.5,"?+1,",51)="@" ; OPEN COUNT
  1. S FDA(3.5,"?+1,",4)="@" ; ASK DEVICE
  1. S FDA(3.5,"?+1,",5)="@" ; ASK PARAMETERS
  1. S FDA(3.5,"?+1,",5.1)="YES" ; ASK HOST FILE
  1. S FDA(3.5,"?+1,",5.2)="@" ; ASK HFS I/O OPERATION
  1. S FDA(3.5,"?+1,",19)=OPENPAR ; OPEN PARAMETERS
  1. ;
  1. N ERR
  1. D UPDATE^DIE("E",$NA(FDA),,$NA(ERR))
  1. I $D(DIERR) ZWRITE ERR
  1. ;
  1. DEVTTY ; Fix TTY
  1. N OS S OS=$$VERSION^%ZOSV(1)
  1. N dI S dI=$S(OS["Linux":"/dev/tty",OS["NT":"|TRM|",1:"/dev/tty")
  1. N ttyIEN s ttyIEN=$$FIND1^DIC(3.5,,"MQ",dI)
  1. ;
  1. N FDA,IENS
  1. i ttyIEN S IENS=ttyIEN_","
  1. e s IENS="+1,"
  1. S FDA(3.5,IENS,.01)="CONSOLE"
  1. S FDA(3.5,IENS,.02)="Computer Console" ; LOCATION
  1. S FDA(3.5,IENS,1)=dI ; $I
  1. S FDA(3.5,IENS,2)="VIRTUAL TERMINAL" ; TYPE
  1. N VTIEN S VTIEN=$$FIND1^DIC(3.2,,"XQ","C-VT220")
  1. I 'VTIEN S VTIEN=$$FIND1^DIC(3.2,,"XQ","C-VT100")
  1. S FDA(3.5,IENS,3)="`"_VTIEN
  1. N ERR,IEN
  1. i ttyIEN D FILE^DIE("E",$NA(FDA),$NA(ERR)) i 1
  1. e D UPDATE^DIE("E",$NA(FDA),$NA(IEN),$NA(ERR)) S IENS=IEN(1)_","
  1. I $D(DIERR) ZWRITE ERR B
  1. ;
  1. N FDA,ERR
  1. S FDA(3.5,IENS,1.95)=1 ; SIGN-ON/SYSTEM DEVICE
  1. D FILE^DIE(,$NA(FDA),$NA(ERR))
  1. I $D(DIERR) ZWRITE ERR B
  1. ;
  1. DEVPTS ; Fix PTS
  1. N OS S OS=$$VERSION^%ZOSV(1)
  1. N dI S dI=$S(OS["Linux":"/dev/pts",OS["NT":"|TNT|",OS["CYGWIN":"/dev/cons",OS["Darwin":"/dev/ttys",1:"/dev/pts")
  1. N ptyIEN s ptyIEN=$$FIND1^DIC(3.5,,"MQ",dI)
  1. ;
  1. i ptyIEN S IENS=ptyIEN_","
  1. e s IENS="+1,"
  1. N FDA
  1. S FDA(3.5,IENS,.01)="VIRTUAL TERMINAL"
  1. S FDA(3.5,IENS,.02)="Virtual Terminal" ; LOCATION
  1. S FDA(3.5,IENS,1)=dI ; $I
  1. S FDA(3.5,IENS,2)="VIRTUAL TERMINAL" ; TYPE
  1. N VTIEN S VTIEN=$$FIND1^DIC(3.2,,"XQ","C-VT220")
  1. I 'VTIEN S VTIEN=$$FIND1^DIC(3.2,,"XQ","C-VT100")
  1. S FDA(3.5,IENS,3)="`"_VTIEN
  1. N ERR,IEN
  1. i ptyIEN D FILE^DIE("E",$NA(FDA),$NA(ERR)) i 1
  1. e D UPDATE^DIE("E",$NA(FDA),$NA(IEN),$NA(ERR)) S IENS=IEN(1)_","
  1. I $D(DIERR) ZWRITE ERR B
  1. ;
  1. N FDA,ERR
  1. S FDA(3.5,IENS,1.95)=1 ; SIGN-ON/SYSTEM DEVICE
  1. D FILE^DIE(,$NA(FDA),$NA(ERR))
  1. I $D(DIERR) ZWRITE ERR B
  1. QUIT
  1. ;
  1. ;
  1. F19P2OPT ; Map: Option Name; Startup or time to schedule; resched freq; OS-specific
  1. ;;XWB LISTENER STARTER^S
  1. ;;XUSER-CLEAR-ALL^S
  1. ;;XUDEV RES-CLEAR^S
  1. ;;XOBV LISTENER STARTUP^S
  1. ;;XMMGR-START-BACKGROUND-FILER^S
  1. ;;XMAUTOPURGE^T+1@0010^1D
  1. ;;XMCLEAN^T+1@0015^1D
  1. ;;XQBUILDTREEQUE^T+1@0020^1D
  1. ;;XQ XUTL $J NODES^T+1@0025^1D
  1. ;;XUERTRP AUTO CLEAN^T+1@0030^1D
  1. ;;XUTM QCLEAN^T+1@0035^1D
  1. ;;XMMGR-PURGE-AI-XREF^T+1@0040^1D
  1. ;;<<END>>
  1. ;;
  1. SOFTCLN ; [Private] Soft clean tasks -- don't delete them as in a brand new system
  1. K ^%ZTSCH("ER")
  1. K ^%ZTSCH("STATUS")
  1. K ^%ZTSCH("MON")
  1. K ^%ZTSCH("WAIT")
  1. K ^%ZTSCH("SYNC")
  1. K ^%ZTSCH("STARTUP")
  1. K ^%ZTSCH("DEVTRY")
  1. K ^%ZTSCH("IO")
  1. K ^%ZTSCH("LINK")
  1. K ^%ZTSCH("SUB")
  1. N X,Y
  1. S X=0 F S X=$O(^%ZTSK(X)) Q:'X D
  1. . I '$D(^%ZTSK(X,0)) QUIT
  1. . N Y S Y=^%ZTSK(X,0)
  1. . S $P(Y,"^",4)=UCI
  1. . S $P(Y,"^",11)=UCI
  1. . S $P(Y,"^",12)=VOL
  1. . S $P(Y,"^",14)=UCI
  1. . S ^%ZTSK(X,0)=Y
  1. QUIT
  1. ;
  1. KF(FN,IENS) ; Kill File; Private Procedure
  1. ; FN = File Number; pass by value. Required.
  1. ; IENS = IENs; pass by value. Optional.
  1. ; NB: Will not work for files under ^DIC as this deletes their definition as well
  1. N GREF S GREF=$$ROOT^DILFD(FN,$G(IENS),1) ; Close File Root
  1. Q:GREF["^DIC" ; Don't delete files stored in ^DIC
  1. Q:GREF="" ; No invalid files.
  1. N % S %=@GREF@(0) ; Save off zero node
  1. S $P(%,U,3,4)="" ; remove last touched and newest record markers
  1. K @GREF ; bye
  1. S @GREF@(0)=% ; restore zero node
  1. QUIT
  1. KRNMAXJ(VOL) ; Max Jobs on this volume in the Kernel; Private $$
  1. N X S X=$O(^XTV(8989.3,1,4,"B",VOL,0))
  1. N J S J=$S(X>0:^XTV(8989.3,1,4,X,0),1:"ROU^^1")
  1. Q $P(J,U,3)