- XWBTCPMT ;ISF/RWF - Routine to test a connection ;10/07/09 16:37
- ;;1.1;RPC BROKER;**43,49,53**;Mar 28, 1997;Build 5
- CALL ;Interactive
- N IP,PORT,STAT
- D HOME^%ZIS
- S U="^",DTIME=$$DTIME^XUP
- W !,"Interactive Broker Test"
- R !,"IP ADDRESS: ",IP:DTIME
- I IP["^" Q
- R !,"PORT: ",PORT:DTIME
- I PORT["^" Q
- S STAT=$$TEST(IP,PORT,1)
- U $P
- W !,$S(STAT>0:"Success, response: "_$P(STAT,U,2),1:"Failed: "_$P(STAT,U,2,9))
- Q
- ;
- TEST(IP,PORT,TALK) ;
- N T1,T2,T3,T4,OS,RES,RES2,RES3
- S OS=^%ZOSF("OS")
- I IP'?1.3N1P1.3N1P1.3N1P1.3N S IP=$$ADDRESS^XLFNSLK(IP)
- I IP'?1.3N1P1.3N1P1.3N1P1.3N Q "-1^BAD IP"
- I OS["OpenM" X "S T1=$ZH"
- D CALL^%ZISTCP(IP,PORT)
- I OS["OpenM" X "S T2=$ZH"
- I POP Q "-1^Failed to Connect"
- U IO
- N $ET S $ET="G ERR^XWBTCPMT"
- ;TCPConnect
- W "[XWB]10304"_$C(10)_"TCPConnect5001010.6.17.95f00010f0024ISF-FORTW.vha.med.va.govf"_$C(4),@IOF
- R RES:10 I '$T S RES="-1^TIMEOUT" G EXIT
- I OS["OpenM" X "S T3=$ZH"
- W "[XWB]11302"_$C(1)_"0"_$C(16)_"XUS SIGNON SETUP54f"_$C(4),@IOF
- R RES2:10
- I OS["OpenM" X "S T4=$ZH"
- W "[XWB]10304"_$C(5)_"#BYE#"_$C(4),@IOF
- R RES3:3 I '$T S RES="-1^TIMEOUT after accept" G EXIT
- S RES="1^"_RES_U_($G(T2)-$G(T1))_U_($G(T3)-$G(T2))_U_($G(T4)-$G(T3))
- EXIT ;Close and Exit
- D CLOSE^%ZISTCP
- Q RES
- ;
- ERR ;
- D CLOSE^%ZISTCP
- U $P
- Q "-1^"_$$EC^%ZOSV
- ;
- CHECK ;Check server setup
- N XPARSYS,XWBDEBUG,XWBOS,XWBT,XWNRBUF,XWBTIME,NEWJOB,XWBVER
- W !,"This will check for some of the errors that can prevent the Broker"
- W !,"from getting started.",!
- D HOME^%ZIS
- S XWBVER=1.108
- D INIT^XWBTCPM
- W !,"Debugging is set to ",$S(XWBDEBUG=1:"On",XWBDEBUG=2:"Verbose",XWBDEBUG=3:"Very Verbose",1:"Off")
- D SETTIME^XWBTCPM(0)
- W !,"Broker activity timeout is set to ",XWBTIME
- S %ZIS="M",IOP="NULL" D ^%ZIS
- I POP W !,"The NULL device is not setup correctly."
- I 'POP D
- . W !,"Checking can Write to null device"
- . U IO W !,"TEST",!
- . D ^%ZISC U IO W !,"The NULL device is OK."
- I $T(SHARELIC^%ZOSV)="" W !,"The routine %ZOSV is missing the entry point 'SHARELIC'."
- I $T(GETPEER^%ZOSV)="" W !,"The routine %ZOSV is missing the entry point 'GETPEER'."
- I $G(XWBT("PCNT")),$T(COUNT^XUSCNT)="" W !,"The routine XUSCNT is missing on a GT.M system."
- W !,"Checking if new JOB's can start."
- S ^TMP("XWB",$J)=1 X "J HOLD^XWBTCPMT($J) H 1"
- I $G(^TMP("XWB",$J))=1 W !,"Doesn't look like a new JOB could start!",!
- S NEWJOB=$$NEWJOB^XWBTCPM()
- W !,"New jobs are "_$S('NEWJOB:"not ",1:"")_"allowed."
- W !,"Done with the checks.",!
- K ^TMP("XWB",$J)
- Q
- ;
- HOLD(MJ) ;Show that a new job is allowed.
- S ^TMP("XWB",MJ)=5
- HANG 5
- Q
- XWBTCPMT ;ISF/RWF - Routine to test a connection ;10/07/09 16:37
- +1 ;;1.1;RPC BROKER;**43,49,53**;Mar 28, 1997;Build 5
- CALL ;Interactive
- +1 NEW IP,PORT,STAT
- +2 DO HOME^%ZIS
- +3 SET U="^"
- SET DTIME=$$DTIME^XUP
- +4 WRITE !,"Interactive Broker Test"
- +5 READ !,"IP ADDRESS: ",IP:DTIME
- +6 IF IP["^"
- QUIT
- +7 READ !,"PORT: ",PORT:DTIME
- +8 IF PORT["^"
- QUIT
- +9 SET STAT=$$TEST(IP,PORT,1)
- +10 USE $PRINCIPAL
- +11 WRITE !,$SELECT(STAT>0:"Success, response: "_$PIECE(STAT,U,2),1:"Failed: "_$PIECE(STAT,U,2,9))
- +12 QUIT
- +13 ;
- TEST(IP,PORT,TALK) ;
- +1 NEW T1,T2,T3,T4,OS,RES,RES2,RES3
- +2 SET OS=^%ZOSF("OS")
- +3 IF IP'?1.3N1P1.3N1P1.3N1P1.3N
- SET IP=$$ADDRESS^XLFNSLK(IP)
- +4 IF IP'?1.3N1P1.3N1P1.3N1P1.3N
- QUIT "-1^BAD IP"
- +5 IF OS["OpenM"
- XECUTE "S T1=$ZH"
- +6 DO CALL^%ZISTCP(IP,PORT)
- +7 IF OS["OpenM"
- XECUTE "S T2=$ZH"
- +8 IF POP
- QUIT "-1^Failed to Connect"
- +9 USE IO
- +10 NEW $ETRAP
- SET $ETRAP="G ERR^XWBTCPMT"
- +11 ;TCPConnect
- +12 WRITE "[XWB]10304"_$CHAR(10)_"TCPConnect5001010.6.17.95f00010f0024ISF-FORTW.vha.med.va.govf"_$CHAR(4),@IOF
- +13 READ RES:10
- IF '$TEST
- SET RES="-1^TIMEOUT"
- GOTO EXIT
- +14 IF OS["OpenM"
- XECUTE "S T3=$ZH"
- +15 WRITE "[XWB]11302"_$CHAR(1)_"0"_$CHAR(16)_"XUS SIGNON SETUP54f"_$CHAR(4),@IOF
- +16 READ RES2:10
- +17 IF OS["OpenM"
- XECUTE "S T4=$ZH"
- +18 WRITE "[XWB]10304"_$CHAR(5)_"#BYE#"_$CHAR(4),@IOF
- +19 READ RES3:3
- IF '$TEST
- SET RES="-1^TIMEOUT after accept"
- GOTO EXIT
- +20 SET RES="1^"_RES_U_($GET(T2)-$GET(T1))_U_($GET(T3)-$GET(T2))_U_($GET(T4)-$GET(T3))
- EXIT ;Close and Exit
- +1 DO CLOSE^%ZISTCP
- +2 QUIT RES
- +3 ;
- ERR ;
- +1 DO CLOSE^%ZISTCP
- +2 USE $PRINCIPAL
- +3 QUIT "-1^"_$$EC^%ZOSV
- +4 ;
- CHECK ;Check server setup
- +1 NEW XPARSYS,XWBDEBUG,XWBOS,XWBT,XWNRBUF,XWBTIME,NEWJOB,XWBVER
- +2 WRITE !,"This will check for some of the errors that can prevent the Broker"
- +3 WRITE !,"from getting started.",!
- +4 DO HOME^%ZIS
- +5 SET XWBVER=1.108
- +6 DO INIT^XWBTCPM
- +7 WRITE !,"Debugging is set to ",$SELECT(XWBDEBUG=1:"On",XWBDEBUG=2:"Verbose",XWBDEBUG=3:"Very Verbose",1:"Off")
- +8 DO SETTIME^XWBTCPM(0)
- +9 WRITE !,"Broker activity timeout is set to ",XWBTIME
- +10 SET %ZIS="M"
- SET IOP="NULL"
- DO ^%ZIS
- +11 IF POP
- WRITE !,"The NULL device is not setup correctly."
- +12 IF 'POP
- Begin DoDot:1
- +13 WRITE !,"Checking can Write to null device"
- +14 USE IO
- WRITE !,"TEST",!
- +15 DO ^%ZISC
- USE IO
- WRITE !,"The NULL device is OK."
- End DoDot:1
- +16 IF $TEXT(SHARELIC^%ZOSV)=""
- WRITE !,"The routine %ZOSV is missing the entry point 'SHARELIC'."
- +17 IF $TEXT(GETPEER^%ZOSV)=""
- WRITE !,"The routine %ZOSV is missing the entry point 'GETPEER'."
- +18 IF $GET(XWBT("PCNT"))
- IF $TEXT(COUNT^XUSCNT)=""
- WRITE !,"The routine XUSCNT is missing on a GT.M system."
- +19 WRITE !,"Checking if new JOB's can start."
- +20 SET ^TMP("XWB",$JOB)=1
- XECUTE "J HOLD^XWBTCPMT($J) H 1"
- +21 IF $GET(^TMP("XWB",$JOB))=1
- WRITE !,"Doesn't look like a new JOB could start!",!
- +22 SET NEWJOB=$$NEWJOB^XWBTCPM()
- +23 WRITE !,"New jobs are "_$SELECT('NEWJOB:"not ",1:"")_"allowed."
- +24 WRITE !,"Done with the checks.",!
- +25 KILL ^TMP("XWB",$JOB)
- +26 QUIT
- +27 ;
- HOLD(MJ) ;Show that a new job is allowed.
- +1 SET ^TMP("XWB",MJ)=5
- +2 HANG 5
- +3 QUIT