cQCTK1 ;Backgroundjob Manager ;cQCTK1; [ 08/01/01 12:51 PM ] ; T0 ;Backgroundjob Manager ; T1 ; herstart wegens ; T2 ;Cannot start:; ; T0F ;Backgroundjob Manager ; T1F ; redemarré à cause d'une ; T2F ;Cannot start:; ; D MASTER^cQ5,^cA105,^cA106 S BG=$H,(CS,MCS)=cs D NSPC^cQ21(.SYS,1) S (K,NMSPT)="",prevh=+$H,vnr=0 F S K=$O(SYS(K)) Q:K="" D . I $TR(K,"0123456789")'=$TR(CS,"0123456789") K SYS(K) . I $TR(K,"0123456789")=$TR(CS,"0123456789") S NMSPT=NMSPT_$P(K,$TR(CS,"0123456789"),2)_" " S:$E(NMSPT,$L(NMSPT))=" " $E(NMSPT,$L(NMSPT))="" L +^cLOG(CS,"CTK0","JOB",boot):1 E G YZ D HIGH^%PRIO ; put job in high priority S $ZT="TRAP^"_$T(+0),^cLOG(CS,"CTK0","JOB",boot)=$J_"\"_DT_"\"_TD_"\"_BG,DELTA=0 F H $G(%H,60)-$G(DELTA) S %H=$G(^cLOG(CS,"CTK0","WAIT"),60) Q:'%H D . I %H<60 S %H=60,^cLOG(CS,"CTK0","WAIT")=%H . S I="",BG=$H D ^cA105,^cA106 . F S I=$O(^cLOG(CS,"CTK0","AUTO",I)) Q:I="" I $D(^(I))#10 D .. S L=^(I),P=$P(L,"\") Q:'$L(P) Q:'$P(L,"\",5) D PARSE Q:'$L(B) .. I $L($P(L,"\",13))," "_$P(L,"\",13)_" "'[(" "_boot_" ") Q .. S RF=$P(L,"\",2),RK=$P(L,"\",3),RH=$P(L,"\",4),RL="",X=0 .. S WT=$P(L,"\",11),NMSPS=$P(L,"\",10),MAS=$P(L,"\",12),PRIO=+$P(L,"\",14),KUU=$P(L,"\",15) S:KUU="" KUU="EA" .. S X=$O(^cLOG(CS,"CTK0","AUTO",I,boot,""),-1) .. I X S X=$O(^cLOG(CS,"CTK0","AUTO",I,boot,X,""),-1) I X S RL=$P(^(X),"\",4) .. S X=0 S:'$L(NMSPS) NMSPS="1" S:NMSPS="*" NMSPS=NMSPT S:NMSPS="%SYS" NMSPC="%SYS" .. I NMSPS'="%SYS" S NMSPC=$TR(NMSPC,"0123456789")_$P(NMSPS," ") I cs?1"V"2.N S NMSPC=cs .. Q:'$D(^$|NMSPC|ROUTINE(B)) .. I master'=slave S NS=$$NS^cQ14 Q:$S(master=NS:$S(MAS="S":1,1:0),slave=NS:$S(MAS="M":1,1:0),1:0) .. ; .. ; ***** op een welbepaalde dag .. I RF>57600,RF=+$H Q:$$TIME(RH,%H) S X=1 .. ; .. ; ***** om de zoveel seconden (max 57600 = om de 16 uren) .. I RF>30,RF<57600 Q:$$LRUN(RL,RF) S X=1 .. ; .. ; ***** elke dag, bepaald uur .. I RF=1 Q:$$TIME(RH,%H) Q:$$LRUN(RL,%H) S X=1 .. ; .. ; ***** elke werkdag, bepaald uur .. I RF=2 Q:BG#7=2 Q:BG#7=3 Q:$$TIME(RH,%H) Q:$$LRUN(RL,%H) S X=1 .. ; .. ; ***** elke week, bepaalde dag, bepaald uur .. I RF=7 Q:BG#7'=RK Q:$$TIME(RH,%H) Q:$$LRUN(RL,%H) S X=1 .. ; .. ; ***** elke 14 dagen, bepaalde dag, bepaald uur .. I RF=14 Q:BG#7'=RK Q:RL+10>BG Q:$$TIME(RH,%H) Q:$$LRUN(RL,%H) S X=1 .. ; .. ; ***** elke maand, bepaalde dag, bepaald uur .. I RF=30 D Q:RX'=RK Q:$$TIME(RH,%H) Q:$$LRUN(RL,%H) S X=1 ... S RX=+DD I RK=99 D .... I RX=28,+DM=2,'(DJ#4&'(DJ#100)!(DJ#400)&'(DJ#4000)) S RX=99 Q .... I RX=29,+DM=2 S RX=99 Q .... I RX=30,"\4\6\9\11\"[("\"_+DM_"\") S RX=99 Q .... I RX=31,"\1\3\5\7\8\10\12\"[("\"_+DM_"\") S RX=99 Q .. ; .. I X D ... D P JOB ... J @("^"_p_"::1") S X=$ZC ... L +@%logctk:1 S @%logctk=$S('X:"no",1:X)_"\"_DT_"\"_TD_"\"_BG ... D CLEAN^cQ13($NA(@%logctk,5),20) L -@%logctk . S DELTA=$H-BG*3600*24+($P($H,",",2)-$P(BG,",",2)) ; S %logctk="^cLOG(CS,""CTK0"",""JOB"","""_boot_""")",$P(@%logctk,"\")=0 D LOG ; YZ Q ; P ; build program K p S curh=+$H,vnr=vnr+1 i curh'=prevh s vnr=1,prevh=curh S p="p"_curh_"p"_vnr,day=+$H,tim=+$P($H,",",2) S %logctk="^|"""_CS_"""|cLOG("""_CS_""",""CTK0"",""AUTO"","_I_","""_boot_""","_day_","_tim_")" F Q:'$D(^$R(p)) S p=$p(p,"p",1,2)_"p"_($p(p,"p",3)+1) S q=0,p(q)=p_" ;"_p_"; "_$ZD(day,4)_" - "_$ZT(tim,1) S q=q+1,p(q)=" ;" S q=q+1,p(q)=" S $ZT=""^cA407"" D "_$S(PRIO=-1:"LOW",PRIO=1:"HIGH",1:"NORMAL")_"^%PRIO" S q=q+1,p(q)=" L +^|"""_$ZU(5)_"""|cLOG("""_CS_""",""CTK0"",""AUTO"","_I_"):1 E G X" S q=q+1,p(q)=" ;" S q=q+1,p(q)=" ZN """_NMSPC_""" S Q="""_KUU_""" D ^cA604 S QU=""SYS"",QL="""",%bg=1 D "_P I $L(NMSPS," ")>1 D K p(q) . F i=1:1:$L(NMSPS," ") S NMSPC=$TR(CS,"0123457890")_$P(NMSPS," ",i) I $ZU(90,10,NMSPC) .. S p(i/1000+q)=" ZN """_NMSPC_""" S Q="""_KUU_""" D ^cA604 S QU=""SYS"",QL="""",%bg=1 D "_P . S i=q f s i=$O(p(i)) q:i="" q:$O(p(i))="" S p(i)=p(i)_" H "_(WT*60) S q=q+1,p(q)=" ;" S q=q+1,p(q)=" D ^cA105,^cA106" S q=q+1,p(q)=" S $P("_%logctk_",""\"",6)=DT,$P(^("_tim_"),""\"",7)=TD,$P(^("_tim_"),""\"",8)=$H" S q=q+1,p(q)=" L -^|"""_$ZU(5)_"""|cLOG("""_CS_""",""CTK0"",""AUTO"","_I_")" S q=q+1,p(q)=" ;" s q=q+1,p(q)="X S $ZT=""R^"_$T(+0)_""" X ""zr zs "_p_"""" S q=q+1,p(q)=" ;" S q=q+1,p(q)="YZ Q" S q=q+1,p(q)=" ;" S q=q+1,p(q)="ZZ ; "_$ZD(day,4)_" - "_$ZT(tim,1) X "s i="""" zr x ""f s i=$o(p(i)) q:i="""""""" zi p(i)"" zs "_p Q ; R ; Program is removed and traps here I $ZE["^p" Q D ^cA407 Q ; PARSE N C Q:'$L(P) S:P'["^" P="^"_P S NMSPC=$ZU(5),CPU="" I P[":(" S C=$P($P($P(P,":(",2),")"),":"),NMSPC=$$SQ(C) PARSE1 S B=$P($TR(P,"^|[(:","~~~~~"),"~",2),CPU="" Q ; SQ(K) Q $TR(K,"""") ; TIME(H,A) N T S H=$G(H),A=$G(A,10)-1,H=H*3600+($P(H,":",2)*60),T=+$P(BG,",",2) Q $S(T(H+A)):1,1:0) ; LRUN(L,R) Q $P(BG,",",2)-$P(L,",",2)/86400+BG-L<(R-1/86400) ; LOG Q:'$L($G(%logctk)) S BG=$H D ^cA105,^cA106 H 5 F L +@%logctk:5 Q:$T S $P(@%logctk,"\",6)=DT,$P(@%logctk,"\",7)=TD,$P(@%logctk,"\",8)=BG D CLEAN^cQ13($NA(@%logctk,5),20) L -@%logctk Q ; TRAP S M=$T(+0)_$P($T(T1),";",2)_$ZE,%=$ZE,%ZTRAP="TRAP^"_$T(+0) I $ZE[$T(+0),$ZE["" Q D ^cA400,ALERT(1) I $ZE[$T(+0) D L J @("^"_$T(+0)) . I $ZE[""!($ZE["") Q . I $ZE["JOB^"!($ZE["JOB^") D .. L +@%logctk:1 S @%logctk="no\"_DT_"\"_TD_"\"_BG L -@%logctk .. S $P(^cLOG(CS,"CTK0","AUTO",I),"\",5)=0 .. S $P(^(I),"\",7)=$P($T(T2),";",2)_$P($ZE,">")_">",$P(^(I),"\",8)="" Q ; ALERT(%1) ; verzenden alert I %1 D D1004^cANEM0($T(+0),$P($T(@("T0"_$G(QT))),";",2)) Q D D1005^cANEM0($T(+0),$P($T(@("T0"_$G(QT))),";",2)) Q Q ; ZZ ; 24.08.01 - 9 u 19 * Cache-r3.1.8