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

BLRRLMST.m

Go to the documentation of this file.
  1. BLRRLMST ;ihs/cmi/maw - BLR Reference Lab Monitor Utilities; 22-Oct-2013 09:22 ; MKK
  1. ;;5.2;IHS LABORATORY;**1033**;NOV 01, 1997
  1. ;;1.0;BLR REFERENCE LAB;**1033**;NOV 01, 1997
  1. Q
  1. ;
  1. ;
  1. SITE(RETVAL,BLRSTR) ;-- get site paramters
  1. N P,BLRUSR,BLRSITE,BLRI,BLRPRD
  1. S RETVAL="^BLRTMP("_$J_")"
  1. S P="|"
  1. S BLRSITE=$P(BLRSTR,P)
  1. S BLRUSR=$P(BLRSTR,P,2)
  1. S BLRI=0
  1. S @RETVAL@(BLRI)="T00020EnsembleProduction"_$C(30)
  1. S BLRI=BLRI+1
  1. S @RETVAL@(BLRI)=$O(^BLRRLMST("APRD",BLRSITE,BLRUSR,0))_$C(30)
  1. S BLRI=BLRI+1
  1. S @RETVAL@(BLRI+1)=$C(31)
  1. Q
  1. ;
  1. INT(RETVAL,BLRSTR) ;-- lets start/stop/recover or monitor
  1. N P,CNS,NS,PROD,BLRI,VQR,VQRI,VQRT,VQRR,VQT,VQRT,TCPL,OF,IF
  1. S P="|"
  1. ;S CNS=$ZU(5)
  1. S CNS=$NAMESPACE
  1. S NS=$P(BLRSTR,P)
  1. S PROD=$P(BLRSTR,P,2)
  1. S VQT=$P(BLRSTR,P,3)
  1. S VQR=$P(BLRSTR,P,4)
  1. S TCPL=$P(BLRSTR,P,5)
  1. S OF=$P(BLRSTR,P,7)
  1. S IF=$P(BLRSTR,P,6)
  1. S RETVAL="^BLRTMP("_$J_")"
  1. S BLRI=0
  1. S @RETVAL@(BLRI)="T00001Value"_$C(30)
  1. ; I (CNS'=NS) ZN NS
  1. I (CNS'=NS) S $NAMESPACE=NS
  1. I PROD=1 D
  1. . Do ##class(Ens.Director).StartProduction("LR.VALediIII")
  1. I PROD=2 D
  1. . Do ##class(Ens.Director).StopProduction()
  1. I PROD=3 D
  1. . Do ##class(Ens.Director).RecoverProduction()
  1. . Do ##class(Ens.Director).StartProduction("LR.VALediIII")
  1. S tSC=##class(Ens.Director).GetProductionStatus(.tProductionName,.tState)
  1. ; I (CNS'=NS) ZN CNS
  1. I (CNS'=NS) S $NAMESPACE=CNS
  1. I VQR=1 D
  1. . D STRTLLP("LA7VQR")
  1. I VQR=2 D
  1. . D STOPLLP("LA7VQR")
  1. I VQR=3 D
  1. . D STOPLLP("LA7VQR")
  1. . H 3
  1. . D STRTLLP("LA7VQR")
  1. I VQT=1 D
  1. . D STRTLLP("LA7VQT")
  1. I VQT=2 D
  1. . D STOPLLP("LA7VQT")
  1. I VQT=3 D
  1. . D STOPLLP("LA7VQT")
  1. . H 3
  1. . D STRTLLP("LA7VQT")
  1. I TCPL=1 D
  1. . D TASKLM^HLCSLM
  1. I TCPL=2 D
  1. . D STOPLM^HLCSLM
  1. I TCPL=3 D
  1. . D STOPLM^HLCSLM
  1. . H 3
  1. . D TASKLM^HLCSLM
  1. I OF=1 D
  1. . Q:'$$FILERCNT(2)
  1. . D STARTOUT^HLCS1
  1. I OF=2 D
  1. . D STOPOUT^HLCS1
  1. I OF=3 D
  1. . D STOPOUT^HLCS1
  1. . H 3
  1. . D STARTOUT^HLCS1
  1. I IF=1 D
  1. . Q:'$$FILERCNT(1)
  1. . D STARTIN^HLCS1
  1. I IF=2 D
  1. . D STOPIN^HLCS1
  1. I IF=3 D
  1. . D STOPIN^HLCS1
  1. . H 3
  1. . D STARTIN^HLCS1
  1. S @RETVAL@(BLRI+1)=$C(31)
  1. Q
  1. ;
  1. FILERCNT(INOUT) ;-- return filer counts
  1. N IN,OUT,NODE,DEFIN,DEFOUT
  1. S (IN,OUT)=0
  1. S NODE=+$O(^HLCS(869.3,0))
  1. S DEFIN=$P($G(^HLCS(869.3,NODE,1)),U)
  1. S DEFOUT=$P($G(^HLCS(869.3,NODE,1)),U,2)
  1. I INOUT=1,$$CNTFLR^HLCSUTL2("IN")<DEFIN S IN=1
  1. I INOUT=2,$$CNTFLR^HLCSUTL2("OUT")<DEFOUT S OUT=1
  1. Q $S(INOUT=1:IN,1:OUT)
  1. ;
  1. STATUS(RETVAL,BLRSTR) ;-- lets get the status of all interfaces
  1. ;1-production, 2-LA7VQR, 3-LA7VQT, 4-TCP Link Manager, 5-Inbound Filer, 6-Outbound Filer, 9-All
  1. N P,R,CNS,NS,STAT,BLRI,PRODI,PROD,VQR,VARI,VQT,VQTI,TCPL,IF,OF
  1. S (PROD,VQR,VQT,TCPL,IF,OF)=0
  1. S P="|"
  1. S R="~"
  1. S NS=$P(BLRSTR,P)
  1. S STAT=$P(BLRSTR,P,2)
  1. ; S CNS=$ZU(5)
  1. S CNS=$NAMESPACE
  1. S RETVAL="^BLRTMP("_$J_")"
  1. S BLRI=0
  1. S @RETVAL@(BLRI)="T00080Status"_$C(30)
  1. I (STAT=1)!(STAT=9) D
  1. . ; I (CNS'=NS) ZN NS
  1. . I (CNS'=NS) S $NAMESPACE=NS
  1. . S tSC=##class(Ens.Director).GetProductionStatus(.tProductionName,.tState)
  1. . S PRODI=$G(tState)
  1. . S PROD=$S(PRODI=2:"Stopped",PRODI=3:"Suspended",PRODI=4:"Troubled",1:"Running")
  1. . ; I (CNS'=NS) ZN CNS
  1. . I (CNS'=NS) S $NAMESPACE=CNS
  1. I (STAT=2)!(STAT=9) D
  1. . S VQRI=$O(^HLCS(870,"B","LA7VQR",0))
  1. . I $P($G(^HLCS(870,VQRI,0)),U,15) S VQR="Stopped" Q
  1. . S VQR="Running"
  1. . ;S VQR=$P($G(^HLCS(870,VQRI,0)),U,5)
  1. I (STAT=3)!(STAT=9) D
  1. . S VQTI=$O(^HLCS(870,"B","LA7VQT",0))
  1. . I $P($G(^HLCS(870,VQTI,0)),U,15) S VQT="Stopped" Q
  1. . S VQT="Running"
  1. . ;S VQT=$P($G(^HLCS(870,VQTI,0)),U,5)
  1. I (STAT=4)!(STAT=9) D
  1. . S TCPL="Stopped"
  1. . I $$STAT^HLCSLM S TCPL="Running"
  1. I (STAT=5)!(STAT=9) D
  1. . I '$$CNTFLR^HLCSUTL2("IN") S IF="Stopped" Q
  1. . S IF="Running"
  1. I (STAT=6)!(STAT=9) D
  1. . I '$$CNTFLR^HLCSUTL2("OUT") S OF="Stopped" Q
  1. . S OF="Running"
  1. S BLRI=BLRI+1
  1. S @RETVAL@(BLRI)=$G(PROD)_R_$G(VQT)_R_$G(VQR)_R_$G(TCPL)_R_$G(IF)_R_$G(OF)_$C(30)
  1. S @RETVAL@(BLRI+1)=$C(31)
  1. ;
  1. Q
  1. ;
  1. STOPLLP(PAT) ;Stop Logical Links
  1. ;PAT=link to stop
  1. N HLDP,HLDP0,HLPARM0,HLPARM4,HLJ,X,Y S HLDP=0
  1. F S HLDP=$O(^HLCS(870,HLDP)) Q:'HLDP S HLDP0=$G(^(HLDP,0)),X=+$P(HLDP0,U,3) D:X
  1. .;skip this link if not stopping all and Autostart not enabled
  1. . ;I 'ALL&('$P(HLDP0,U,6)) Q
  1. . I PAT]"",$P(HLDP0,U)'=PAT Q ;only stop patterned LLP
  1. . S HLPARM4=$G(^HLCS(870,HLDP,400))
  1. . ;TCP Multi listener for non-Cache uses UCX
  1. . I $P(HLPARM4,U,3)="M" Q:^%ZOSF("OS")'["OpenM" Q:$$OS^%ZOSV["VMS"
  1. . ;4=status,10=Time Stopped,9=Time Started,11=Task Number,3=Device Type,14=shutdown?
  1. . S X="HLJ(870,"""_HLDP_","")",@X@(4)="Halting",@X@(10)=$$NOW^XLFDT,(@X@(11),@X@(9))="@",@X@(14)=1
  1. . I $P(HLPARM4,U,3)="C"&("N"[$P(HLPARM4,U,4)),'$P(HLDP0,U,12) S @X@(4)="Shutdown"
  1. . D FILE^HLDIE("","HLJ","","LLP","HLCS2") ;HL*1.6*109
  1. . ;Cache system, need to open TCP port to release job
  1. . I ^%ZOSF("OS")["OpenM",($P(HLPARM4,U,3)="M"!($P(HLPARM4,U,3)="S")) D
  1. .. ;pass task number to stop listener
  1. .. S:$P(HLDP0,U,12) X=$$ASKSTOP^%ZTLOAD(+$P(HLDP0,U,12))
  1. .. D CALL^%ZISTCP($P(HLPARM4,U),$P(HLPARM4,U,2),10)
  1. .. I POP D HOME^%ZIS Q
  1. .. D CLOSE^%ZISTCP
  1. Q
  1. ;
  1. STRTLLP(PAT) ;Start Links
  1. N HLDP,HLDP0,HLDAPP,HLTYPTR,HLBGR,HLENV,HLPARAM0,HLPARM4,HLQUIT,ZTRTN,ZTDESC,ZTSK,ZTCPU
  1. S HLDP=0
  1. F S HLDP=$O(^HLCS(870,HLDP)) Q:HLDP<1 S HLDP0=$G(^(HLDP,0)) D
  1. . S HLPARM4=$G(^HLCS(870,HLDP,400))
  1. . ;quit if no parameters or AUTOSTART is disabled
  1. . ;Q:'$P(HLDP0,U,6)
  1. . I PAT]"",$P(HLDP0,U)'=PAT Q ;only stop patterned LLP
  1. . ;HLDAPP=LL name, HLTYPTR=LL type, HLBGR=routine, HLENV=environment check
  1. . S HLDAPP=$P(HLDP0,U),HLTYPTR=+$P(HLDP0,U,3),HLBGR=$G(^HLCS(869.1,HLTYPTR,100)),HLENV=$G(^(200))
  1. . ;quit if no LL type or no routine
  1. . Q:'HLTYPTR!(HLBGR="")
  1. . I HLENV'="" K HLQUIT X HLENV Q:$D(HLQUIT)
  1. . ;TCP Multi listener for non-Cache uses UCX
  1. . I $P(HLPARM4,U,3)="M" Q:^%ZOSF("OS")'["OpenM" Q:$$OS^%ZOSV["VMS"
  1. . I $P(HLPARM4,U,3)="C"&("N"[$P(HLPARM4,U,4)) D Q
  1. .. ;4=status 9=Time Started, 10=Time Stopped, 11=Task Number
  1. .. ;14=Shutdown LLP, 3=Device Type, 18=Gross Errors
  1. .. N HLJ,X
  1. .. I $P(HLDP0,U,15)=0 Q
  1. .. L +^HLCS(870,HLDP,0):2
  1. .. E Q
  1. .. S X="HLJ(870,"""_HLDP_","")"
  1. .. S @X@(4)="Enabled",@X@(9)=$$NOW^XLFDT,@X@(14)=0
  1. .. D FILE^HLDIE("","HLJ","","STRT","HLCS2") ; HL*1.6*109
  1. .. L -^HLCS(870,HLDP,0)
  1. .. Q
  1. . S ZTRTN=$P(HLBGR," ",2),ZTIO="",ZTDTH=$H,HLTRACE=""
  1. . S ZTDESC=HLDAPP_" Low Level Protocol",ZTSAVE("HLDP")=""
  1. . ;get startup node
  1. . I $P(HLPARM4,U,6),$D(^%ZIS(14.7,+$P(HLPARM4,U,6),0)) S ZTCPU=$P(^(0),U)
  1. . D ^%ZTLOAD
  1. Q
  1. ;