Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ZTMS0

ZTMS0.m

Go to the documentation of this file.
  1. %ZTMS0 ;SEA/RDS-TaskMan: Submanager, Part 2 (Trap Functions) ;09/25/08 16:07
  1. ;;8.0;KERNEL;**24,118,275,446**;JUL 10, 1995;Build 44
  1. ;Per VHA Directive 2004-038, this routine should not be modified.
  1. ;
  1. ERROR2 ;ERROR--trap
  1. L +^%ZTSCH("ER"):99 H 1 S ZTH=$H
  1. S ^%ZTSCH("ER",+ZTH,$P(ZTH,",",2))=$$EC^%ZOSV
  1. S ^%ZTSCH("ER",+ZTH,$P(ZTH,",",2),1)="Caused by the submanager while trapping an error."
  1. L
  1. X "HALT " ;HALT JOB
  1. ;
  1. STATUS ;ERROR--update task's status in Task File, Call w/ ^%ZTSK locked
  1. S ZTE=$E(%ZTME,1,70)
  1. S ZTE=$TR(ZTE,"^","~")
  1. S $P(^%ZTSK(%ZTMETSK,.1),"^",1,3)=$S(ZTQUEUED>.5:"C^",1:"L^")_$H_"^"_ZTE
  1. S $P(^%ZTSK(%ZTMETSK,.12),"^",2,9)=%ZTMEH_"^"_%ZTME
  1. S ^%ZTSK(%ZTMETSK,.12,%ZTMEH)=%ZTME
  1. Q
  1. ;
  1. DEVBAD ;ERROR--dequeue all entries for a bad device
  1. N ZT,ZT1,ZT2,ZT3,ZT4
  1. Q:'$$DEVLK^%ZTMS1(1,ZTDEVOK)
  1. L +^%ZTSCH("IO"):5 G DBX:'$T S $P(^%ZTSCH("IO"),"^")=$$H3^%ZTM($H)
  1. S ZT2=ZTDEVOK,ZT3=""
  1. F S ZT3=$O(^%ZTSCH("IO",ZT2,ZT3)),ZT4="" Q:ZT3="" F S ZT4=$O(^%ZTSCH("IO",ZT2,ZT3,ZT4)) Q:ZT4="" L +^%ZTSK(ZT4):99 D DQ L -^%ZTSK(ZT4)
  1. K ^%ZTSCH("IO",ZTDEVOK)
  1. I $O(^%ZTSCH("IO",""))="" K ^%ZTSCH("IO")
  1. L -^%ZTSCH("IO")
  1. DBX D DEVLK^%ZTMS1(-1,ZTDEVOK)
  1. Q
  1. ;
  1. DQ ;DEVBAD--remove a task from the waiting list for a bad device
  1. K ^%ZTSCH("IO",ZT2,ZT3,ZT4)
  1. S $P(^%ZTSK(ZT4,.1),"^",1,3)="B^"_$H_"^BAD IO DEVICE "_ZT2
  1. K ^%ZTSK(ZT4,.26,ZT2)
  1. I $O(^%ZTSK(ZT4,.26,""))]"" Q
  1. K ^%ZTSK(ZT4,.26)
  1. Q
  1. ;
  1. ERCLOZ ;ERROR--close device after error
  1. ;N %ZT1 S %ZT1=(IO=$G(^XUTL("XQ",$J,"IO")))
  1. I $L($G(IO)) S IO("C")="" D ^%ZISC ;Close the current device
  1. ;I $G(^XUTL("XQ",$J,"IO"))'=$I D ERC2
  1. I $L(IO),$D(IO(1,IO)) S IO("C")="" D ^%ZISC ;Close a second device open
  1. Q
  1. ;
  1. ERC2 ;Close original Device
  1. N POP
  1. S POP=1 D RESETVAR^%ZIS Q:POP
  1. ;S IOS=$P(%ZTTV,"^",2),(IO,IO(0))=$P(%ZTTV,"^",5),IOT=$P(%ZTTV,"^",6),IOF=$P(%ZTTV,"^",11),IOST=$P(%ZTTV,"^",12),IO("C")=""
  1. I $D(IO(1,IO)) S IO("C")="" D ^%ZISC
  1. Q
  1. ;
  1. XREF ;ERROR--cross-reference TaskMan Error file entry by context of error
  1. S ZTERROX=$S('%ZTMETSK:"an unknown task.",1:"Task # "_%ZTMETSK_".")
  1. S ZTQUEUED=$G(ZTQUEUED)
  1. I ZTQUEUED=0 S ZTERROX1="Caused by the submanager." Q
  1. I ZTQUEUED=.5 S ZTERROX1="Caused by the submanager while preparing "_ZTERROX Q
  1. I ZTQUEUED=.6 S ZTERROX1="Caused by submanager after "_ZTERROX Q
  1. S ZTERROX1="Caused by "_ZTERROX
  1. Q
  1. ;