HLCSTCPA ;OIFO-O/RJH - (TCP/IP) VMS ;07/26/2007 10:29 ;;1.6;HEALTH LEVEL SEVEN;**84,122**;Oct 13, 1995;Build 14 ;Per VHA Directive 2004-038, this routine should not be modified. ; ; 1. port number is input from VMS COM file, such as HLSxxxxDSM.COM, ; HLSxxxxCACHE.COM, or HLSxxxxGTM.COM file, where xxxx is port ; number. ; 2. find the ien of #870(logical link file) for the multi-listener Q ; GTMPORT(%) ; From tcpip ZFOO for GT.M ; %: device^port number N HLPORT S HLPORT=$P($G(%),"^",2) I $G(^%ZOSF("OS"))'["GT.M" D ^%ZTER Q D IEN Q ; PORT ; ; HLPORT: port number of multi-listener ; input of DSM: % = device^port number of multi-listener ; input of Cache: port number of TCPIP ; N HLPORT S HLPORT=0 I ^%ZOSF("OS")["OpenM" D . S HLPORT=$ZF("GETSYM","PORT") I ^%ZOSF("OS")["DSM" D . S HLPORT=$P(%,"^",2) ; IEN ; ; HLIEN870: ien in #870 (logical link file) ; HLPRTS: port number in entry to be tested ; N HLIEN870 I 'HLPORT D ^%ZTER Q S HLIEN870=0 F S HLIEN870=$O(^HLCS(870,"E","M",HLIEN870)) Q:'HLIEN870 D Q:(HLPRTS=HLPORT) . S HLPRTS=$P(^HLCS(870,HLIEN870,400),"^",2) I 'HLIEN870 D ^%ZTER Q ; K HLPORT,HLPRTS ; patch 122 S U="^" ; ;for Cache/VMS I ^%ZOSF("OS")["OpenM" D Q . D CACHEVMS(HLIEN870) ; ;for DSM I ^%ZOSF("OS")["DSM" D Q . S $P(%,"^",2)=HLIEN870 ;set % = device^ien of #870 . K HLIEN870 . D EN ; ;for GT.M I ^%ZOSF("OS")["GT.M" D Q . S HLDP=HLIEN870 ;set HLDP = ien of #870 . K HLIEN870 . D GTMUCX ; D ^%ZTER Q GTMUCX ; GT.M /VMS tcpip ;listener, % = device^port S U="^",IO=$P(%,U) ; S IO(0)=$P O IO(0) ;Setup null device ; GTM specific code S @("$ZINTERRUPT=""I $$JOBEXAM^ZU($ZPOSITION)""") X "O IO:(RECORDSIZE=512)" D LISTEN^HLCSTCP C IO Q ; ; $ x=f$trnlnm("sys$net") !This is our MBX device ; $! ; $! for GT.M ; $ assign 'f$trnlnm("SYS$NET")' SYS$NET ; $! Depending on how your command files are set up, you may need to ; $! run the GT.M profile file. ; $ @gtmprofile.com ; $ forfoo="$" + f$parse("user$:[gtmmgr.r]ZFOO.exe") ; $ PORT=5000 ; $ data="''x'^''PORT'" ; $ forfoo GTMPORT^HLCSTCPA("''data'") ; CACHEVMS(%) ;Cache'/VMS tcpip ;listener, % = HLDP I $G(%)="" D ^%ZTER Q ; patch 133 S IO="SYS$NET",U="^",HLDP=% S IO(0)="_NLA0:" O IO(0) ;Setup null device ; **Cache'/VMS specific code** O IO::5 E D MON^HLCSTCP("Openfail") Q X "U IO:(::""-M"")" ;Packet mode like DSM D LISTEN^HLCSTCP C IO Q ; EN ; DSM/VMS tcpip ;listener, % = device^HLDP I $G(%)="" D ^%ZTER Q ; patch 122 ; S IO="SYS$NET",U="^",HLDP=$P(%,U,2) S U="^",IO=$P(%,U),HLDP=$P(%,U,2) ; patch 133 S IO(0)="_NLA0:" O IO(0) ;Setup null device ; **VMS specific code, need to share device** O IO:(TCPDEV):60 E D MON^HLCSTCP("Openfail") Q ; patch 122 D LISTEN^HLCSTCP C IO Q