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

ZTM3.m

Go to the documentation of this file.
  1. %ZTM3 ;SEA/RDS-TaskMan: Manager, Part 5 (Link Handling 2) ;22 May 2003 10:21 am
  1. ;;8.0;KERNEL;**275**;JUL 10, 1995
  1. ;
  1. L ^%ZTSCH("LINK") S ^%ZTSCH("LINK")=""
  1. S ZTDVOL=""
  1. L0 F ZT=0:0 S ZTDVOL=$O(^%ZTSCH("LINK",ZTDVOL)) Q:ZTDVOL="" D TEST
  1. I $D(^%ZTSCH("LINK"))#2,$O(^%ZTSCH("LINK",""))="" K ^%ZTSCH("LINK")
  1. L K %ZTX,ZT,ZTDVOL,ZTD,ZTDTH,ZTH,ZTI,ZTM,ZTN,ZTR,ZTS,ZTSK,ZTT
  1. Q
  1. ;
  1. TEST ;LINK--test dropped link and send tasks if restored
  1. S ZTI=$O(^%ZIS(14.5,"B",ZTDVOL,""))
  1. S ZTS=^%ZIS(14.5,ZTI,0)
  1. I $P(ZTS,U,3)="N" D REJECT Q
  1. I $P(ZTS,U,4)="Y" Q
  1. S ZTM=$P(ZTS,U,6)
  1. S ZTN=$P(ZTS,U,7)
  1. I ZTN S ZTNS=^%ZIS(14.5,ZTN,0),ZTN=$P(ZTNS,U)
  1. I ZTN="" S ZTN=ZTDVOL
  1. E S ZTS=ZTNS
  1. T1 ;
  1. S X="ERTEST^%ZTM3",@^%ZOSF("TRAP")
  1. S X=$D(^[ZTM,ZTN]%ZTSK)
  1. S X="",@^%ZOSF("TRAP")
  1. I $P(ZTS,U,10)="C" K ^%ZTSCH("LINK",ZTDVOL) Q
  1. D XCPU I $O(^%ZTSCH("LINK",ZTDVOL,""))="" K ^%ZTSCH("LINK",ZTDVOL)
  1. Q
  1. ;
  1. REJECT ;TEST--reject waiting tasks whose volume set's link access is removed
  1. S ZTDTH=""
  1. R3 S ZTDTH=$O(^%ZTSCH("LINK",ZTDVOL,ZTDTH)) I ZTDTH="" K ^%ZTSCH("LINK",ZTDVOL) Q
  1. S ZTSK=""
  1. R4 S ZTSK=$O(^%ZTSCH("LINK",ZTDVOL,ZTDTH,ZTSK)) I ZTSK="" G R3
  1. K ^%ZTSCH("LINK",ZTDVOL,ZTDTH,ZTSK)
  1. I '$D(^%ZTSK(ZTSK)) G R4
  1. D TSKSTAT^%ZTM1("B","NO LINK ACCESS TO VOLUME SET")
  1. G R4
  1. ;
  1. ERTEST ;TEST--trap if dropped link is still down
  1. S X="",@^%ZOSF("TRAP")
  1. S ^%ZTSCH("LINK")=$H
  1. Q
  1. ;
  1. XCPU ;TEST--send saved tasks across reestablished link
  1. S X="ERXCPU^%ZTM3",@^%ZOSF("TRAP")
  1. I '$D(^[ZTM,ZTN]%ZTSCH("RUN")) S ZTT=$H G X1
  1. S ZTR=^[ZTM,ZTN]%ZTSCH("RUN"),ZTH=$H
  1. S ZTD=$P(ZTDTH,",",2)+(ZTR-ZTH*86400)+$P(ZTR,",",2)-$P(ZTH,",",2)
  1. S ZTT=ZTDTH+ZTR-ZTH+(ZTD\86400)-(ZTD<0)_","_$S(ZTD<0:0,1:ZTD#86400)
  1. ;
  1. X1 S ZTDTH=""
  1. X3 S ZTDTH=$O(^%ZTSCH("LINK",ZTDVOL,ZTDTH)) I ZTDTH="" Q
  1. S ZTSK=""
  1. X4 S ZTSK=$O(^%ZTSCH("LINK",ZTDVOL,ZTDTH,"")) I ZTSK="" G X3
  1. K ^%ZTSCH("LINK",ZTDVOL,ZTDTH,ZTSK)
  1. I $D(^%ZTSK(ZTSK,0))[0 G X4
  1. I $L($P($G(^%ZTSK(ZTSK,.1)),U,10)) D TSKSTAT^%ZTM1("D","Stopped while waiting for Link") G X4
  1. ;
  1. L ^[ZTM,ZTN]%ZTSK(-1)
  1. S ZTS=^[ZTM,ZTN]%ZTSK(-1)+1
  1. F ZTI=0:0 Q:'$D(^[ZTM,ZTN]%ZTSK(ZTS)) S ZTS=ZTS+1
  1. S ^[ZTM,ZTN]%ZTSK(-1)=ZTS
  1. ;
  1. L (^%ZTSK(ZTSK),^[ZTM,ZTN]%ZTSK(ZTS))
  1. D TSKSTAT^%ZTM1(1,"Link")
  1. S %X="^%ZTSK(ZTSK,",%Y="^[ZTM,ZTN]%ZTSK(ZTS," D %XY^%RCR
  1. S $P(^[ZTM,ZTN]%ZTSK(ZTS,0),U,6)=ZTT
  1. S ^[ZTM,ZTN]%ZTSCH(ZTT,ZTS)=""
  1. ;
  1. K ^%ZTSK(ZTSK)
  1. L ^%ZTSCH("LINK")
  1. G X4
  1. ;
  1. ERXCPU ;XCPU--trap if link drops again while a task is being sent
  1. S X="",@^%ZOSF("TRAP")
  1. I ^%ZTSCH("LINK")="" S ^("LINK")=$H
  1. I ZTSK]"",$D(^%ZTSK(ZTSK,0))#2 D TSKSTAT^%ZTM1("G","Link Error")
  1. L ^%ZTSCH("LINK")
  1. Q
  1. ;