[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference bulean::decnetvax

Title:DECnet-VAX Conference
Notice:The WORLD's Leader in Networking
Moderator:BULEAN::BENOIT
Created:Sun Feb 02 1986
Last Modified:Mon Jun 02 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:5887
Total number of notes:24029

5877.0. "Type from remote object" by ROMTSS::MATTACCHIONE () Mon Mar 17 1997 15:16

Hi,

our customer have problem with a procedure that use a type
via decnet.

The node that execute the command file is a DEcnet V .
The clients are Decnet IV.
The result is that sometime blank field are reported without errors.
Other times time command don't return control to the procedure.
Follow the procedure below.

Any ideas are very appreciated.

Gabriele



$SET MESSAGE/NOTEXT/NOFACILITY/NOIDENTIFICATION/NOSEVERITY
$SET nover
$ini:
$ @net_sav_ri_siat 
$ wait 00:00:05
$ @net_sav_ri
$ wait 00:15:00
$ goto ini


================================================================================
  file net_sav_ri_siat.com
================================================================================
$SET MESSAGE/NOTEXT/NOFACILITY/NOIDENTIFICATION/NOSEVERITY
$delete ri_siat.DAT;*
$DEF/USER SYS$OUTPUT ri_siat.DAT
$TYPE nodo"user password"::"0=hhh"
$OPEN/READ IN ri_siat.DAT
$write sys$output " "
$100:
$READ/end_of_file=end IN REC
$!IF REC .EQS. "S" THEN GOTO 100
$write sys$output rec
$goto 100
$end:CLOSE IN

================================================================================
  file  nodo"user password"::"0=hhh"
================================================================================
$ SET MESSAGE/NOTEXT/NOFACILITY/NOIDENTIFICATION/NOSEVERITY
$ wo :== write sys$output
$ ASS SYS$NET SYS$OUTPUT
$ FLAG = "N"
$ ri_tr1_pid    = f$getdvi("_lta1000","pid")
$ ri_tr1_opcnt  = f$getdvi("_lta1000","OPCNT")
$ ri_tr1_attach = f$getdvi("_lta1000","TT_ACCPORNAM")
$ ri_tr2_pid    = f$getdvi("_lta1005","pid")
$ ri_tr2_opcnt  = f$getdvi("_lta1005","OPCNT")
$ ri_tr2_attach = f$getdvi("_lta1005","TT_ACCPORNAM")
$ dec_ri_app1   = f$trnlnm("APP_RI_TR1")
$ dec_ri_app2   = f$trnlnm("APP_RI_TR2")
$ if (ri_tr1_pid.nes."").and.(ri_tr1_attach.nes."").and. -
     (ri_tr1_opcnt.nes.dec_ri_app1).and.(ri_tr1_opcnt.nes."")
$   then 
$   wo ri_tr1_pid," lta1000  RI_tracc 1  ok"
$   goto sotto
$ endif
$ if ri_tr1_pid.eqs."" then errmsg="Nop"
$ if (ri_tr1_opcnt.eqs.dec_ri_app1).or.(ri_tr1_opcnt.eqs."") then errmsg="Noc"
$ if ri_tr1_attach.eqs."" then errmsg="Noa"
$ wo "         lta1000  RI_tracc 1  ''errmsg'"
$ flag= "S"
$ sotto:
$!
$ if (ri_tr2_pid.nes."").and.(ri_tr2_attach.nes."").and. -
     (ri_tr2_opcnt.nes.dec_ri_app2).and.(ri_tr2_opcnt.nes."")
$   then
$   wo ri_tr2_pid," lta1005  RI_tracc 2  ok"
$   goto sotto2
$ endif 
$ if ri_tr2_pid.eqs."" then errmsg="Nop"
$ if ri_tr2_attach.eqs."" then errmsg="Noa"
$ if (ri_tr2_opcnt.eqs.dec_ri_app2).or.(ri_tr2_opcnt.eqs."") then errmsg="Noc"
$ wo "         lta1005  RI_tracc 2  ''errmsg'"
$ flag= "S"
$ sotto2:
$!
$!
$ if flag .eqs. "S" then wo "S"
$ DEFINE/GROUP  APP_RI_TR1  'RI_TR1_OPCNT'
$ DEFINE/GROUP  APP_RI_TR2  'RI_TR2_OPCNT'

T.RTitleUserPersonal
Name
DateLines
5877.1User Debugging (or more info) RequiredXDELTA::HOFFMANSteve, OpenVMS EngineeringMon Mar 17 1997 16:25193
   There's not really enough for me to hazard a guess here...

   First, ask the customer to do some basic debugging -- comment out the
   "SET MESSAGE/NOTEXT/NOFACILITY/NOIDENTIFICATION/NOSEVERITY" line as a
   start, as that command will suppress all error reporting.  Remember to
   check in the NETSERVER.LOG in the default directory on the remote node,
   too, as that is where any errors on the remote node are logged.

   And consider using something like the following, as it's far more
   flexible than the TYPE command.

$!
$!***************************************************************************
$!*                                                                         *
$!*  COPYRIGHT (c) 1988, 1992 BY                                            *
$!*  DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS.                 *
$!*  ALL RIGHTS RESERVED.                                                   *
$!*                                                                         *
$!*  THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED  *
$!*  ONLY IN  ACCORDANCE WITH  THE  TERMS  OF  SUCH  LICENSE  AND WITH THE  *
$!*  INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR  ANY  OTHER  *
$!*  COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY  *
$!*  OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE  SOFTWARE IS  HEREBY  *
$!*  TRANSFERRED.                                                           *
$!*                                                                         *
$!*  THE INFORMATION IN THIS SOFTWARE IS  SUBJECT TO CHANGE WITHOUT NOTICE  *
$!*  AND  SHOULD  NOT  BE  CONSTRUED AS  A COMMITMENT BY DIGITAL EQUIPMENT  *
$!*  CORPORATION.                                                           *
$!*                                                                         *
$!*  DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE  OR  RELIABILITY OF ITS  *
$!*  SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.                *
$!*                                                                         *
$!***************************************************************************
$!
$!	RDECW.COM
$!
$!	RDECW.COM is used to get an application running on a remote node
$!	(over DECnet) and with a DECwindows display aimed back at the
$!	originating node.
$!
$!	The following command options or formats -- searched in order --
$!	are available.  Each command template is followed by an example of
$!	the template.
$!
$!	    = To activate a DECwindows terminal on the remote node:
$!		$ @SYS$LOGIN:RDECW    <node>	#DECTERM
$!		$ @SYS$LOGIN:RDECW    XDELTA	#DECTERM
$!
$!	    = To activate an image on the specified remote node...
$!		$ @SYS$LOGIN:RDECW    <node>	<image>
$!		$ @SYS$LOGIN:RDECW    XDELTA	SYS$SYSTEM:DECW$MAIL.EXE
$!
$!	    = To execute a single DCL command on the remote node...
$!		$ @SYS$LOGIN:RDECW    <node>	<dcl-command>
$!		$ @SYS$LOGIN:RDECW    XDELTA	NOTES/DECWINDOWS
$!
$!	DCL commands and utilities (such as NOTES) that support and/or accept
$!	a /DECWINDOWS or /FORMAT=DECWINDOWS display qualifier should always
$!	be specified with the DECwindows display qualifier enabled.
$!
$!	CONFIGURATION and SET-UP: A copy of this procedure must reside in the
$!	local login directory *and* the login directory of any node it is to
$!	be used remotely on.  (The remote directory might be a default network
$!	username/account, or it might be the default directory for a proxy
$!	login, or it could be the directory associated with an explicitly
$!	specified access control string.)
$!
$!	If you choose to modify this command procedure, *please* rename the
$!	result -- to avoid potential protocol collisions with this procedure.
$!	Do not (re)use the name RDECW.COM!  Thanks!
$!
$!
$!	M O D I F I C A T I O N    H I S T O R Y
$!
$!	V0.0-000|0|	prehistory	Steve Hoffman (XDELTA::HOFFMAN)
$!	RDECW.COM procedure written.
$!
$!	V1.2-000|2|	28-Feb-1990	Steve Hoffman (XDELTA::HOFFMAN)
$!	added protocol checks, added support for DCL commands.  This
$!	procedure assumes CREATE/TERM is present -- which means it
$!	will work on DECwindows V2 or better (VMS V5.3 and up) only.
$!
$!	V1.2-000|3|	06-Jan-1992	Steve Hoffman (XDELTA::HOFFMAN)
$!	(Hopefully) improved the set-up and configuration requirement
$!	comments.
$!
$!
$
$DECTERM:	SUBROUTINE
$   remnode = "''p1'"
$   Create/Terminal=DECTERM/Detach/Applic/Line/Logged_In "@SYS$LOGIN:LOGIN.COM"
$   Exit
$   EndSubroutine
$
$DECTERM:	SUBROUTINE
$   remnode = "''p1'"
$   Create/Terminal=DECTERM/Detach/Applic/Line/Logged_In "@SYS$LOGIN:LOGIN.COM"
$   Exit
$   EndSubroutine
$
$   Set NoOn
$   Set NoVerif
$   vers = "V1.1-000|2|RDECW"	! version|protocol|task
$   Goto 'F$Mode()'
$
$INTERACTIVE:
$
$!	This part runs only on the local/initiating/client node.
$
$DO_P1:
$   p1 = F$Edit(p1,"COLLAPSE,UPCASE") - "::"
$   If F$Leng(p1) .eq. 0
$   Then
$	msg = "Error reading input"
$	Read/Prompt="Node? "/Error=DONE Sys$Command p1
$	Goto DO_P1
$   EndIf
$DO_P2:
$   p2 = F$Edit(p2,"COLLAPSE,UPCASE")
$   If F$Leng(p2) .eq. 0
$   Then
$	msg = "Error reading input"
$	Read/Prompt="Application? "/Error=DONE Sys$Command p2
$	Goto DO_P2
$   EndIf
$   msg = "Error creating network connection"
$   Open/Read/Write/Error=DONE netlun 'p1'::"task=RDECW"
$   Read netlun remvers
$   Write netlun vers
$   msg = "Protocol error, mismatched RDECW versions"
$   remvers = F$Edit("''remvers'","UPCASE,COLLAPSE")
$   if F$Elem(1,"|","''vers'") .nes. F$Elem(1,"|","''remvers'") then goto DONE
$   msg = "Protocol error, unknown remote procedure"
$   if F$Elem(2,"|","''vers'") .nes. F$Elem(2,"|","''remvers'") then goto DONE
$   msg = "Error creating network connection"
$   Write netlun p2
$   Close netlun
$   msg = ""
$   Goto DONE
$!
$NETWORK:
$
$!	This part runs only on the remote/receiving/server node.
$
$   Set Verify
$   msg = "Error receiving network connection"
$   Open/Read/Write/Error=DONE netlun Sys$Net
$   Write netlun vers
$   Read netlun remvers
$   msg = "Protocol error, mismatched RDECW versions"
$   remvers = F$Edit("''remvers'","UPCASE,COLLAPSE")
$   if F$Elem(1,"|","''vers'") .nes. F$Elem(1,"|","''remvers'") then goto DONE
$   msg = "Protocol error, unknown remote procedure"
$   if F$Elem(2,"|","''vers'") .nes. F$Elem(2,"|","''remvers'") then goto DONE
$   msg = "Error receiving network connection"
$   Read netlun applic
$   Close netlun
$   remnode = F$TrnLnm("SYS$REM_Node") - "::"
$   Set Display/Create/Node='remnode'
$   If F$Len(remnode) .ne. 0
$   Then
$	prcnam = "''remnode'_" + F$Fao("!XW",f$getjpi(0,"PROC_INDEX"))
$	prcnam = F$Extr(0,15,prcnam)
$	Set Process/Name="''prcnam'"
$	If F$Extr(0,1,applic ) .eqs. "#"
$	Then
$	    applic = applic - "#"
$	    Call 'Applic' 'remnode'
$	Else
$	    If F$Search("''applic'","SYS$LOGIN:.EXE") .nes. ""
$	    Then
$		RUN 'applic'
$	    Else
$		'applic'
$	    EndIf
$	EndIf
$   Else
$	msg = "No remote node defined."
$	Goto DONE
$   EndIf
$
$   Exit
$
$BATCH:
$OTHER:
$   msg = "Unsupported F$MODE()"
$
$DONE:
$   If F$TrnLnm("netlun") .nes. "" Then CLOSE netlun
$   If F$Len(msg) .ne. 0 Then Write Sys$Output msg
$   Stop
$   Exit