Index: EWRECR.mac.rou =================================================================== diff -u -r734 -r1825 --- EWRECR.mac.rou (.../EWRECR.mac.rou) (revision 734) +++ EWRECR.mac.rou (.../EWRECR.mac.rou) (revision 1825) @@ -1,3 +1,6 @@ +#include vhLib.Macro +#define EWRECRLoggerGroep "EWRECR (testfase)" + EWRECR ;E'WMS Ontvangen van gegevens [ 12/06/2003 4:22 PM ] ; Quit @@ -10,8 +13,13 @@ Write ! ZWrite C Write ! Quit -START Do INIT +START + Set $ZTrap="OnEWRECRError" + Do ##class(vhLib.Logger).%New($$$EWRECRLoggerGroep).Info("Start","EWRECR wordt gestart"_$$$CRLF_$$GetJobInfo^vhLib.System()) + Do INIT Do ERROR^EWLOG($T(GESTART)) + Do ##class(vhLib.Logger).%New($$$EWRECRLoggerGroep).Info("Start","EWRECR is gestart") + For Quit:EWLoop="STOP" Do Quit:EWLoop="STOP" .;Use WDev .Set Ok=$System.Event.Wait("EWRECFAST",$S(FastMode:FastTime,1:HangTime)) @@ -27,17 +35,26 @@ .If $T Do ; Indien gelocked dan caretaker gestopt ..Lock -^cLOG(cs,"CTK0","JOB") ..Job ^cQCTK1 + . .Set Ok=$System.Event.Wait("EWRECSTOP",0) .Set:Ok=1 EWLoop="STOP" Do:EWLoop="STOP" ERROR^EWLOG($T(GESTOPT)) - Kill ^EWREC("P","CHKJOB"),^EWREC("P","CHKDEV") - Set Ok=$System.Event.Delete("EWRECSTOP") - Set Ok=$System.Event.Delete("EWRECFAST") - Set Ok=$System.Event.Signal("EWRECSTOPPED") - Lock -^EWREC("R") + Do ##class(vhLib.Logger).%New($$$EWRECRLoggerGroep).InfoMail("Stop","EWRECR is gestopt (var EWLoop="_EWLoop_")") + Do CLEANUP ;Close:$G(WDev) WDev + Set $ZTrap="" Quit +OnEWRECRError + // ErrorHandling added by WimV on 18/08/2011 + Set $ZTrap="" + New Exception + Set Exception = ##class(TECH.ExceptionHandler).Catch() + Do ##class(vhLib.Logger).%New($$$EWRECRLoggerGroep).ErrorMail("ErrorTrap","EWRECR is gecrashed: "_Exception.ToString()) + Do CLEANUP + Quit + + STOP New Ok Set Ok=$$StopSignal() @@ -48,12 +65,24 @@ StopSignal(TimeOut) New Ok,Ok2 Do ERROR^EWLOG($T(MANSTOP)) + Do ##class(vhLib.Logger).%New($$$EWRECRLoggerGroep).Info("Stop",$TEXT(MANSTOP)_$$$CRLF_$$GetJobInfo^vhLib.System()) Set Ok=$System.Event.Create("EWRECSTOPPED") Set Ok=$S($System.Event.Defined("EWRECSTOP"):$System.Event.Signal("EWRECSTOP"),1:0) Set Ok=$System.Event.Wait("EWRECSTOPPED",$G(TimeOut,30)) ; wachten totdat EWREC gestopped Set Ok2=$System.Event.Delete("EWRECSTOPPED") Quit Ok - ; + + +CLEANUP + // opkuisen van System.Events en Locks + // wordt opgeroepen bij afsluiten van EWRECR en wanneer EWRECR crasht + Kill ^EWREC("P","CHKJOB"),^EWREC("P","CHKDEV") + Set Ok=$System.Event.Delete("EWRECSTOP") + Set Ok=$System.Event.Delete("EWRECFAST") + Set:($System.Event.Defined("EWRECSTOPPED")) Ok=$System.Event.Signal("EWRECSTOPPED") + Lock -^EWREC("R") + Quit + INIT Set Q="K" D ^cA604 ;Set D="\",U=";",Q="K" Set EWLoop="STOP" ; Indien problemen met initialisatie