- XMKPL ;ISC-SF/GMB-Manage the local mail posting process ;04/17/2002 10:54
- ;;8.0;MailMan;;Jun 28, 2002
- ; Replaces ^XMADGO1,^XMADGO (ISC-WASH/CAP)
- ; Entry points (not covered by DBIA):
- ; CHECK Check the local processes.
- ; If they haven't been deliberately STOP'd,
- ; and if they are not running,
- ; then task them.
- ; STATUS Get status of local processes.
- ;
- ; Entry points used by MailMan options (not covered by DBIA):
- ; STOP XMMGR-STOP-BACKGROUND-FILER - Stop the local processes.
- ; START XMMGR-START-BACKGROUND-FILER - Start the local processes.
- ;
- CHECK ; Task Background Filer processes if any missing
- Q:$P(^XMB(1,1,0),U,16) ; Quit if 'background filer stop flag' set.
- N XMPROC,XMSTATUS
- D STATUS(.XMSTATUS)
- Q:'$D(XMSTATUS)
- S XMPROC=""
- F S XMPROC=$O(XMSTATUS(XMPROC)) Q:XMPROC="" D QUEUE(XMPROC)
- Q
- STATUS(XMSTATUS) ;Check status of background filer
- N XMPROC,XMLOCK
- F XMPROC="Mover","Tickler" D
- . S XMLOCK="POST_"_XMPROC
- . L +^XMBPOST(XMLOCK):0 E Q
- . S XMSTATUS(XMPROC)=$$EZBLD^DIALOG($S(XMPROC="Mover":36224.1,1:36224.2)) ; The Mover/Tickler is not running!
- . L -^XMBPOST(XMLOCK)
- Q
- QUEUE(XMPROC) ;Start Queue processors
- N XMHANG,ZTRTN,ZTDESC,ZTSAVE,X,ZTSK,ZTQUEUED,ZTCPU,ZTDTH,ZTIO
- S XMHANG=$$HANG
- S ZTDESC=$$EZBLD^DIALOG($S(XMPROC="Mover":36227,1:36228)) ; MailMan: Background Filer (Mover/Tickler)
- S ZTSAVE("XMHANG")=""
- S ZTRTN=$S(XMPROC="Mover":"GO^XMKPLQ",1:"GO^XMTDT")
- I $D(^XMB(1,1,0)) S X=$P(^(0),U,12) I X'="" S ZTCPU=$P(X,",",2)
- S ZTIO="",ZTDTH=$H
- D ^%ZTLOAD
- Q
- HANG() ; Get Hangtime for delivery modules
- N X
- S X=$P($G(^XMB(1,1,0)),U,13)
- Q $S(X:X,1:5)
- STOP ; Stop Background mail delivery processes
- N DIR,Y,DIRUT
- S DIR(0)="Y"
- D BLD^DIALOG(36229,"","","DIR(""A"")")
- ;Are you sure you want the Background Filers to stop delivering mail
- S DIR("B")=$$EZBLD^DIALOG(39053) ; No
- D ^DIR Q:'Y
- S $P(^XMB(1,1,0),U,16)=1 ; Set 'background filer stop flag'
- W:'$D(ZTQUEUED) !!,$C(7),$$EZBLD^DIALOG(36229.1) ; << Background Filers will stop soon. >>
- Q
- START ; Start the local processes (usually after they had been STOP'd).
- S $P(^XMB(1,1,0),U,16)="" ; Reset 'background filer stop flag'
- D CHECK
- W:'$D(ZTQUEUED) !!,$C(7),$$EZBLD^DIALOG(36229.2) ; << Background Filers will start soon. >>
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HXMKPL 2331 printed Jan 18, 2025@03:13:27 Page 2
- XMKPL ;ISC-SF/GMB-Manage the local mail posting process ;04/17/2002 10:54
- +1 ;;8.0;MailMan;;Jun 28, 2002
- +2 ; Replaces ^XMADGO1,^XMADGO (ISC-WASH/CAP)
- +3 ; Entry points (not covered by DBIA):
- +4 ; CHECK Check the local processes.
- +5 ; If they haven't been deliberately STOP'd,
- +6 ; and if they are not running,
- +7 ; then task them.
- +8 ; STATUS Get status of local processes.
- +9 ;
- +10 ; Entry points used by MailMan options (not covered by DBIA):
- +11 ; STOP XMMGR-STOP-BACKGROUND-FILER - Stop the local processes.
- +12 ; START XMMGR-START-BACKGROUND-FILER - Start the local processes.
- +13 ;
- CHECK ; Task Background Filer processes if any missing
- +1 ; Quit if 'background filer stop flag' set.
- if $PIECE(^XMB(1,1,0),U,16)
- QUIT
- +2 NEW XMPROC,XMSTATUS
- +3 DO STATUS(.XMSTATUS)
- +4 if '$DATA(XMSTATUS)
- QUIT
- +5 SET XMPROC=""
- +6 FOR
- SET XMPROC=$ORDER(XMSTATUS(XMPROC))
- if XMPROC=""
- QUIT
- DO QUEUE(XMPROC)
- +7 QUIT
- STATUS(XMSTATUS) ;Check status of background filer
- +1 NEW XMPROC,XMLOCK
- +2 FOR XMPROC="Mover","Tickler"
- Begin DoDot:1
- +3 SET XMLOCK="POST_"_XMPROC
- +4 LOCK +^XMBPOST(XMLOCK):0
- IF '$TEST
- QUIT
- +5 ; The Mover/Tickler is not running!
- SET XMSTATUS(XMPROC)=$$EZBLD^DIALOG($SELECT(XMPROC="Mover":36224.1,1:36224.2))
- +6 LOCK -^XMBPOST(XMLOCK)
- End DoDot:1
- +7 QUIT
- QUEUE(XMPROC) ;Start Queue processors
- +1 NEW XMHANG,ZTRTN,ZTDESC,ZTSAVE,X,ZTSK,ZTQUEUED,ZTCPU,ZTDTH,ZTIO
- +2 SET XMHANG=$$HANG
- +3 ; MailMan: Background Filer (Mover/Tickler)
- SET ZTDESC=$$EZBLD^DIALOG($SELECT(XMPROC="Mover":36227,1:36228))
- +4 SET ZTSAVE("XMHANG")=""
- +5 SET ZTRTN=$SELECT(XMPROC="Mover":"GO^XMKPLQ",1:"GO^XMTDT")
- +6 IF $DATA(^XMB(1,1,0))
- SET X=$PIECE(^(0),U,12)
- IF X'=""
- SET ZTCPU=$PIECE(X,",",2)
- +7 SET ZTIO=""
- SET ZTDTH=$HOROLOG
- +8 DO ^%ZTLOAD
- +9 QUIT
- HANG() ; Get Hangtime for delivery modules
- +1 NEW X
- +2 SET X=$PIECE($GET(^XMB(1,1,0)),U,13)
- +3 QUIT $SELECT(X:X,1:5)
- STOP ; Stop Background mail delivery processes
- +1 NEW DIR,Y,DIRUT
- +2 SET DIR(0)="Y"
- +3 DO BLD^DIALOG(36229,"","","DIR(""A"")")
- +4 ;Are you sure you want the Background Filers to stop delivering mail
- +5 ; No
- SET DIR("B")=$$EZBLD^DIALOG(39053)
- +6 DO ^DIR
- if 'Y
- QUIT
- +7 ; Set 'background filer stop flag'
- SET $PIECE(^XMB(1,1,0),U,16)=1
- +8 ; << Background Filers will stop soon. >>
- if '$DATA(ZTQUEUED)
- WRITE !!,$CHAR(7),$$EZBLD^DIALOG(36229.1)
- +9 QUIT
- START ; Start the local processes (usually after they had been STOP'd).
- +1 ; Reset 'background filer stop flag'
- SET $PIECE(^XMB(1,1,0),U,16)=""
- +2 DO CHECK
- +3 ; << Background Filers will start soon. >>
- if '$DATA(ZTQUEUED)
- WRITE !!,$CHAR(7),$$EZBLD^DIALOG(36229.2)
- +4 QUIT