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