The VMS SharkOpenVMS Notes: DECnet

  1. The information and software presented on this web site are intended for educational use only by OpenVMS application developers and OpenVMS system attendants.
  2. The information and software presented on this web site are provided free of charge.
  3. The information and software presented on this web site are presented to you as-is. I will not be held responsible in any way if the information and software presented on this web site damages your computer system, business or organization (sounds like the legal warning from a Microsoft shrink-wrap seal, eh?)
  4. Is this text too small? You have two options:
    1. hold down the CTRL key while rolling the mouse wheel (zoom-in, zoom-out)
    2. use your keyboard like so:
      • hit: CTRL with "-" key to zoom smaller
      • hit: CTRL with "+" key to zoom larger
      • hit: CTRL with zero key to reset zoom

Table of Contents

 Overly Simplistic Introduction to DECnet

 Intro

 A few terms

 Modes

DECnet can run in three different modes (types)

  1. NON-ROUTING
  2. ROUTING (level-1 routing)
  3. AREA (level-2 routing)
What mode is your DECnet currently running?
$sho exec char
 
Node Volatile Characteristics as of 17-MAY-2012 07:02:42
 
Executor node = 14.999 (KAWC99)
 
Identification           = HP DECnet for OpenVMS Alpha
Management version       = V4.0.0
Incoming timer           = 45
Outgoing timer           = 60
Incoming Proxy           = Enabled
Outgoing Proxy           = Enabled
NSP version              = V4.1.0
Maximum links            = 32
Delay factor             = 80
Delay weight             = 5
Inactivity timer         = 60
Retransmit factor        = 10
Routing version          = V2.0.0
Type                     = nonrouting IV
Routing timer            = 600
Broadcast routing timer  = 180
Maximum address          = 1023
Maximum circuits         = 16
Maximum cost             = 1022
Maximum hops             = 30
Maximum visits           = 63
Maximum area             = 63
Max broadcast nonrouters = 64
Max broadcast routers    = 32
Maximum path splits      = 1
Area maximum cost        = 1022
Area maximum hops        = 30
Maximum buffers          = 100
Buffer size              = 576
Default access           = incoming and outgoing
Pipeline quota           = 4032
Alias maximum links      = 32
Path split policy        = Normal
Maximum Declared Objects = 31
 
NCP>

 DCL One-Liners

Objective DCL Command Notes
Display a local text file on a local node $ type file.txt no DECnet involved
Display a local text file on a remote node $ type node::path:file.txt near-end account must be proxied in far-end SYSUAF
Display a local text file on a remote node $ type node"user pass"::path:file.txt user + pass are sent in the clear (can be seen with a packet sniffer)
     
Execute a local script on a local node $ @script.com no DECnet involved
Execute a remote script on a local node $ @node::path:script.com near-end account must be proxied in far-end SYSUAF
Execute a remote script on a local node $ @node"user pass"::path:script.com user + pass are sent in the clear (can be seen with a packet sniffer)
Execute a remote script on a remote node $ type node"user pass"::"task=script" 1) this is not a typo, you must  use "TYPE"
2) including the file extension will not work
3) "script" must not be longer than 12 chars (although some docs say 16)
4) At the remote end, if you do not send data directly to sys$net then you will need to redefine sys$output to sys$net
5) debug messages will be logged in file netserver.log which will be found in the remote sys$login
     
Open a local file from a local node
(three unrelated examples)
$ open/read buffer1 file.txt
$ open/write buffer2 file.txt
$ open/read/write buffer3 file.txt
1) no DECnet involved
2) Here, buffer1, buffer2, and buffer3 are variable names I made up to identify internal data streams.
Open a remote file from a local node $ open/read buffer1 node::path:file.txt near-end account must be proxied in far-end SYSUAF
Open a remote file from a local node $ open/read buffer1 node"user pass"::path:file.txt user + pass are sent in the clear (can be seen with a packet sniffer)
Execute  a remote script from a remote
node (and communicate with it)
$ open/read/write server node"user pass"::"task=script"
$ write server "hello 1 2 3"
$ read/wait/time_out=5 server buffer
$ write sys$output "-i-received: ", buffer 
1) open (caveat: user + pass are sent in the clear)
2) send one string to the other side
3) wait (up to 5 seconds) for a response
4) display the response string
     
Connect to another node via DECnet $ set host node simple connect string

Node
string notes
VMS version connect strings legal? alternative "connect string"
5.x $ set host 14.123 n calc: 14 x 1024 + 123 = 14459
type: $ set host 14459
  $ set host name y  
6.x $ set host 14.123 ?  
  $ set host name y  
7.x (and higher) $ set host 14.123 y  
  $ set host name y  

 Demo Code

DECnet task-to-task communications in DCL

DECnet task-to-task communications in BASIC

 Buy This Book (if you can)

Every VMS professional should own a copy of the Writing Real Programs in DCL, Second Edition (HP Technologies) by Steve Hoffman and Paul Anagnostopoulos (with publishing dates of either 1998 or 1999; you only want the second edition). Chapter #23 is all about DECnet.

Caveat: Just as it is nearly impossible to acquire a copy of the Apple II Red Book (1978) by Steve Wozniak, you will not find available copies of Writing Real Programs in DCL unless you are willing to fork over $15000 to $50000 to the used book market. I personally do not own a copy but have been able to read it online at work since my employer has a paid up subscription to Books 24x7 (just search the titles for "DCL")

If your company subscribes to 24x7 Books, this title was still listed in 2011 but you will not be able to download or print it. Nevertheless, you can still read it which will put you in a better position than laying out a couple hundred dollars.

 Links


Back to OpenVMS
Back to Home
Neil Rieck
Kitchener - Waterloo - Cambridge, Ontario, Canada.