| 1 | XMKPL ;ISC-SF/GMB-Manage the local mail posting process ;04/17/2002  10:54 | 
|---|
| 2 | ;;8.0;MailMan;;Jun 28, 2002 | 
|---|
| 3 | ; Replaces ^XMADGO1,^XMADGO (ISC-WASH/CAP) | 
|---|
| 4 | ; Entry points (not covered by DBIA): | 
|---|
| 5 | ; CHECK   Check the local processes. | 
|---|
| 6 | ;         If they haven't been deliberately STOP'd, | 
|---|
| 7 | ;         and if they are not running, | 
|---|
| 8 | ;         then task them. | 
|---|
| 9 | ; STATUS  Get status of local processes. | 
|---|
| 10 | ; | 
|---|
| 11 | ; Entry points used by MailMan options (not covered by DBIA): | 
|---|
| 12 | ; STOP    XMMGR-STOP-BACKGROUND-FILER  - Stop the local processes. | 
|---|
| 13 | ; START   XMMGR-START-BACKGROUND-FILER - Start the local processes. | 
|---|
| 14 | ; | 
|---|
| 15 | CHECK ; Task Background Filer processes if any missing | 
|---|
| 16 | Q:$P(^XMB(1,1,0),U,16)  ; Quit if 'background filer stop flag' set. | 
|---|
| 17 | N XMPROC,XMSTATUS | 
|---|
| 18 | D STATUS(.XMSTATUS) | 
|---|
| 19 | Q:'$D(XMSTATUS) | 
|---|
| 20 | S XMPROC="" | 
|---|
| 21 | F  S XMPROC=$O(XMSTATUS(XMPROC)) Q:XMPROC=""  D QUEUE(XMPROC) | 
|---|
| 22 | Q | 
|---|
| 23 | STATUS(XMSTATUS) ;Check status of background filer | 
|---|
| 24 | N XMPROC,XMLOCK | 
|---|
| 25 | F XMPROC="Mover","Tickler" D | 
|---|
| 26 | . S XMLOCK="POST_"_XMPROC | 
|---|
| 27 | . L +^XMBPOST(XMLOCK):0 E  Q | 
|---|
| 28 | . S XMSTATUS(XMPROC)=$$EZBLD^DIALOG($S(XMPROC="Mover":36224.1,1:36224.2)) ; The Mover/Tickler is not running! | 
|---|
| 29 | . L -^XMBPOST(XMLOCK) | 
|---|
| 30 | Q | 
|---|
| 31 | QUEUE(XMPROC) ;Start Queue processors | 
|---|
| 32 | N XMHANG,ZTRTN,ZTDESC,ZTSAVE,X,ZTSK,ZTQUEUED,ZTCPU,ZTDTH,ZTIO | 
|---|
| 33 | S XMHANG=$$HANG | 
|---|
| 34 | S ZTDESC=$$EZBLD^DIALOG($S(XMPROC="Mover":36227,1:36228)) ; MailMan: Background Filer (Mover/Tickler) | 
|---|
| 35 | S ZTSAVE("XMHANG")="" | 
|---|
| 36 | S ZTRTN=$S(XMPROC="Mover":"GO^XMKPLQ",1:"GO^XMTDT") | 
|---|
| 37 | I $D(^XMB(1,1,0)) S X=$P(^(0),U,12) I X'="" S ZTCPU=$P(X,",",2) | 
|---|
| 38 | S ZTIO="",ZTDTH=$H | 
|---|
| 39 | D ^%ZTLOAD | 
|---|
| 40 | Q | 
|---|
| 41 | HANG() ; Get Hangtime for delivery modules | 
|---|
| 42 | N X | 
|---|
| 43 | S X=$P($G(^XMB(1,1,0)),U,13) | 
|---|
| 44 | Q $S(X:X,1:5) | 
|---|
| 45 | STOP ; Stop Background mail delivery processes | 
|---|
| 46 | N DIR,Y,DIRUT | 
|---|
| 47 | S DIR(0)="Y" | 
|---|
| 48 | D BLD^DIALOG(36229,"","","DIR(""A"")") | 
|---|
| 49 | ;Are you sure you want the Background Filers to stop delivering mail | 
|---|
| 50 | S DIR("B")=$$EZBLD^DIALOG(39053) ; No | 
|---|
| 51 | D ^DIR Q:'Y | 
|---|
| 52 | S $P(^XMB(1,1,0),U,16)=1  ; Set 'background filer stop flag' | 
|---|
| 53 | W:'$D(ZTQUEUED) !!,$C(7),$$EZBLD^DIALOG(36229.1) ; << Background Filers will stop soon. >> | 
|---|
| 54 | Q | 
|---|
| 55 | START ; Start the local processes (usually after they had been STOP'd). | 
|---|
| 56 | S $P(^XMB(1,1,0),U,16)=""  ; Reset 'background filer stop flag' | 
|---|
| 57 | D CHECK | 
|---|
| 58 | W:'$D(ZTQUEUED) !!,$C(7),$$EZBLD^DIALOG(36229.2) ; << Background Filers will start soon. >> | 
|---|
| 59 | Q | 
|---|