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