Index: BMXNET_RPMS_dotNET_UTILITIES-BMX/branch/routines/BMXMON.m
===================================================================
--- BMXNET_RPMS_dotNET_UTILITIES-BMX/branch/routines/BMXMON.m	(revision 1183)
+++ BMXNET_RPMS_dotNET_UTILITIES-BMX/branch/routines/BMXMON.m	(revision 1192)
@@ -1,3 +1,3 @@
-BMXMON	; IHS/OIT/HMW - BMXNet MONITOR ; 5/9/11 10:16am
+BMXMON	; IHS/OIT/HMW - BMXNet MONITOR ; 5/22/11 3:35pm
 	;;4.1000;BMX;;Apr 17, 2011
 	;
@@ -18,4 +18,5 @@
     ; --> This reduces the need for custom error trap handling which is very difficult to do
     ; --> in Mumps for new programmers. Mumps errors now are thrown on the client.
+    ; - CHSTAT now has code to get the port for GT.M when using xinetd
 	;
 	;IHS/OIT/HMW Patch 1 added validity check for passed-in namespace
@@ -368,6 +369,18 @@
 	; 
 CKSTAT(OUT,IN)	; EP - RPC: BMX CONNECT STATUS ; CONFIRMS THAT THAT A VALID PROCESS HAS BEEN SPAWNED BY BMXMON
-	N PORT,STATUS,JOBID
-	S PORT=+$P($P,"|",3)
+	; On GT.M on xinetd, get port from ZSHOW "D":^SAM -- thanks to Wally Fort in VistaLink for the Idea
+    ;^SAM("D",1)="/dev/null OPEN "
+    ;^SAM("D",2)="0 OPEN SOCKET TOTAL=1 CURRENT=0 "
+    ;^SAM("D",3)="        SOCKET[0]=h13060671680 DESC=0 CONNECTED ACTIVE  TRAP  REMOTE=172.16.16.56@54531 LOCAL=172.16.16.142@9260 "
+    ;^SAM("D",4)="                ZDELAY  ZBFSIZE=1024 ZIBFSIZE=0 NODELIMITER "
+    ; 
+    N PORT,STATUS,JOBID
+	S PORT=+$P($P,"|",3)                            ; On Cache, port would be the 3rd piece of $Principle
+    I PORT=0,^%ZOSF("OS")["GT.M" DO                 ; if port is blank and we are on GT.M, then we must be using Xinetd
+    . N BMXTMP                                      ; holds device data
+    . X "ZSHOW ""D"":BMXTMP"                        ; dump data
+    . N % S %=""                                    ; loop var
+    . F  S %=$O(BMXTMP("D",%)) Q:'%  Q:BMXTMP("D",%)["LOCAL"   ; Cycle % to the right value
+    . S PORT=+$P($P(BMXTMP("D",%),"LOCAL=",2),"@",2)            ; Get port
 	S JOBID=$P($J,":",1)
 	I $G(^BMXTMP("CONNECT STATUS",JOBID))="" HANG 1  ;Wait for job to spawn ZCHILD to be set in MON^
Index: BMXNET_RPMS_dotNET_UTILITIES-BMX/branch/routines/BMXRPC3.m
===================================================================
--- BMXNET_RPMS_dotNET_UTILITIES-BMX/branch/routines/BMXRPC3.m	(revision 1183)
+++ BMXNET_RPMS_dotNET_UTILITIES-BMX/branch/routines/BMXRPC3.m	(revision 1192)
@@ -1,3 +1,3 @@
-BMXRPC3	; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 5/11/11 4:33pm
+BMXRPC3	; IHS/OIT/HMW - BMX REMOTE PROCEDURE CALLS ; 5/22/11 4:33pm
 	;;4.1000;BMX;;Apr 17, 2011
    ;
@@ -143,16 +143,17 @@
 	S BMXSUB="^VA(200,"_BMXDUZ_",2,"
 	S BMXFACS="T00030FACILITY_NAME^T00030FACILITY_IEN^T00002MOST_RECENT_LOOKUP"_$C(30)
-	;F BMXN=1:1 S BMXFN=$O(^VA(200,BMXDUZ,2,BMXFN)) Q:BMXFN=""  D
-	S BMXRCNT=0  ;cmi/maw mod 10/17/2006
 	F BMXN=1:1 S BMXFN=$O(^VA(200,BMXDUZ,2,BMXFN)) Q:'BMXFN  D  ;IHS/ANMC/LJF 8/9/01
-	. ;S BMXFACS=BMXFACS_$P(^DIC(4,BMXFN,0),U,1)_"^"_BMXFN_$C(30)
 	. S BMXFACS=BMXFACS_$P(^DIC(4,BMXFN,0),U,1)_"^"_BMXFN
-	. ;S BMXRCNT=0  ;cmi/maw orig
-	. ;I $D(^DISV(BMXDUZ,BMXSUB)),^DISV(BMXDUZ,BMXSUB)=BMXFN S BMXRCNT=1
-	. ;I $G(DUZ(2))=BMXFN S BMXRCNT=1  ;cmi/maw orig
-	. S BMXRCNT=BMXRCNT+1  ;cmi/maw mod
-	. S BMXFACS=BMXFACS_"^"_BMXRCNT_$C(30)
-	;//smh I BMXN=1 S BMXFN=$P(^AUTTSITE(1,0),U,1) D
-	;//smh . S BMXFACS=BMXFACS_$P(^DIC(4,BMXFN,0),U,1)_"^"_BMXFN_"^"_1_$C(30)
+	. ; S BMXRCNT=BMXRCNT+1  ;cmi/maw mod ; /smh WRONG WRONG WRONG WRONG. MOST RECENT LOOKUP is 1 or 0, not an increment
+    . N BMXSUB S BMXSUB="^VA(200,"_DUZ_",2,"        ; ^DISV subscript
+    . N BMXLAST S BMXLAST=(^DISV(DUZ,BMXSUB)=BMXFN) ; 1 or 0 if division is the same as the one in the subscript 
+	. S BMXFACS=BMXFACS_"^"_BMXLAST_$C(30)          ; append that and add eor
+	; IF RPMS, RUN THESE
+    ;//smh I BMXN=1 S BMXFN=$P(^AUTTSITE(1,0),U,1) D                            ; rpms only!
+	;//smh . S BMXFACS=BMXFACS_$P(^DIC(4,BMXFN,0),U,1)_"^"_BMXFN_"^"_1_$C(30)   ; rpms only!
+    ; ELSE IF VISTA, RUN THESE
+    ; VISTA Only: If we have no results, use kernel's DUZ(2) set during sign-on
+    ; Equivalent to the RPMS lines above...
+    I BMXN=1 S BMXFACS=BMXFACS_$P(^DIC(4,DUZ(2),0),U,1)_U_DUZ(2)_U_1_$C(30)
 	S BMXFACS=BMXFACS_$C(31)
 	Q
