Defining TCP/IP/NJE

A JES3 node can use NJE protocol over TCP/IP to exchange jobs and data sets with a remote node. TCP/IP/NJE consists of the following definitions:
  1. Any TCP/IP definitions to be used by JES3 must be defined in TCP/IP. This includes IP addresses, host names for the TCP/IP resolver, port names, and special service names.
  2. A network server, typically abbreviated Netserv, which runs as a separate address space from JES3 on the global or any local that is at a sufficient software level. A Netserv definition consists of the following information:
    • A host name and port of a local socket over which the Netserv will listen for incoming information from TCP/IP. The host name can be left unspecified in order to indicate to TCP/IP that it can use any IP address that is defined for the home node.

      The port can be any number from 1 to 65,535. It can also be specified as, or allowed to default to, the special value of 0. This value indicates that a default service name should be used. The service name is VMNET for non-secure connections, and NJENET-SSL for secure connections, if TLS=YES is specified.

      More than one Netserv can use the default IP address by omitting the HOSTNAME parameter, but they must specify unique ports.

    • A system name where the Netserv is to run. If you do not specify a system name, the Netserv will run on the current JES3 global. If a DSI is performed while a Netserv is active, the Netserv will remain active on the same system on which it was active before the DSI. However, if the Netserv is subsequently brought down and back up, it will start on the new global.
    • The name of the TCP/IP stack which contains IP addresses.
  3. The concept of foreign and local sockets exist in TCP/IP. A JES3 socket defines JES3's usage of a foreign socket only. The local socket is implicitly defined by the NETSERV statement.
  4. A socket definition, defining a foreign socket that will be used to connect to TCP/IP. Each socket runs as a subtask under a Netserv address space. The socket definition consists of the following information:
    • A unique name representing the view of the socket by JES3 global, and used in inquiry and modify commands as well as internal JES3 processing of outbound and inbound TCP/IP data.
    • A host name.
    • A port number, handled the same way as the Netserv port number.
    • The Netserv under which the socket task will run.

The following is an example of a TCP/IP definition between two nodes.

BOSTON:
NETSERV,NAME=JES3S1,SYSTEM=APPLES
SOCKET,NAME=SOCKET1,NETSERV=JES3S1,NODE=CHICAGO
  HOSTNAME=CHICAGO.COM
NJERMT,NAME=BOSTON,HOME=YES
NJERMT,NAME=CHICAGO,TYPE=TCPIP
CHICAGO:
NETSERV,NAME=JES3S2,SYSTEM=ORANGES
NJERMT,NAME=CHICAGO,HOME=YES
NJERMT,NAME=BOSTON,TYPE=TCPIP

In this example it is assumed, and required, that CHICAGO.COM has been correctly defined to TCP/IP.

Note:
  1. A SOCKET statement is required on CHICAGO only when it is required to start the communication on CHICAGO. If communication is started on BOSTON using socket SOCKET1, TCP/IP will create an ephemeral socket on the CHICAGO side. JES3 on CHICAGO, in turn, will dynamically create a SOCKET definition with a unique name of @nnnnnnn, where nnnnnnn starts at 0000001 and is assigned to the first available number. JES3 calls this socket definition a server socket, because when a TCP/IP connection is established, the node on which the connection is initiated is known to TCP/IP as a client and the other node is known to TCP/IP as a server. The server node will always create a server socket, even if an inactive socket definition exists on the server side.
  2. If the server node is JES2, a server socket is not dynamically created. A socket definition is required on the server side.