nfiguring TCP/IP Stacks.
The SAS TCP/IP library uses the UNIX System Services call pfsctl(BPX1PCT) to determine whether the z/OS system is running a single TCP/IP stack environment (INET) or a multiple TCP/IP stack environment (CINET). Here is the process:
If the pfsctl() call returns zero, the z/OS System is running an INET environment.
If the pfsctl() call returns the number of CINET TCP/IP stacks and their names, the z/OS System is running a CINET environment.
The SAS TCP/IP library searches for the SAS environment variable TCPIPMCH in the data set that is specified by the ddname TKMVSENV.
For details about specifying the TCPIPMCH environment variable and the TKMVSENV data set, see SAS Environment Variables.
If the TCPIPMCH environment variable is set to a value of "*", the SAS TCP/IP library does not attempt to set the TCP/IP stack affinity.
If the TCPIPMCH environment variable is set to a valid stack name, the SAS TCP/IP library sets the TCP/IP stack affinity to this value.
Otherwise, the TCP/IP stack affinity is set to the first TCP/IP stack name that was returned by the previous call to pfsctl().
The SAS TCP/IP library resets the stack affinity by making another call to pfsctl() using the appropriate flags and specifying the TCP/IP stack name.
The value that is passed to pfsctl() must match the value of the NAME substatement, which is included in the SUBFILESYSTYPE statement, which is defined in the CINET PFS TCP/IP stack in the IBM BPXPRMxx parmlib member.
|SAS Environment Variables|
Environment variables, which are specified in the file to which the ddname TKMVSENV points, are used to customize TCP/IP for SAS 9.2. SAS 9.2 uses the following SAS environment variable to alter default processing for TCP/IP initialization.
The TCPIPMCH SAS environment variable is useful at sites that simultaneously run multiple TCP/IP packages: either multiple TCP/IP vendor packages or multiple instances of the same vendor's TCP/IP. The TCPIPMCH environment variable is used to specify the name of the TCP/IP stack name, such as a started task. Setting this environment variable is the equivalent of the TCPIPJOBNAME/TCPIPUSERID configuration keywords within the IBM TCPIP.DATA file. If the default value for the TCP/IP stack name is not specified, the value is the first TCP/IP stack that is defined to the system.
For information about setting TCPIPMCH, see Configuring SAS To Use the IBM z/OS Name Resolver.
A SAS data set that is referred to as the TKMVSENV data set file can be used to specify the SAS environment variables. If you use SAS environment variables, you must allocate the TKMVSENV DD in the JCL or CLIST that executes SAS 9.2.
For example, here are the allocation statements for the data set SAS.DATA.TKMVSENV, which contains the desired environment variable information:
Note: Line numbering in the TKMVSENV data set must be disabled.
Each logical record contains an environment variable assignment in this format:
|TCP/IP Name Resolver Configuration|
A name resolver is a set of routines that acts as a client on behalf of an application to read a local host file or to access one or more domain name servers (DNS) for name-to-address or address-to-name resolution. Name resolution occurs by calling the name resolver functions getnameinfo() and getaddrinfo() .
A name resolver must be configured for each host. Here are the locations for UNIX configuration files:
contains the local host configuration data.
contains the DNS domain name and the name servers' IP addresses.
contains the service configuration data.
Starting with z/OS V1R4, IBM introduced support for Internet Protocol Version 6 (IPv6), which is the successor to the Internet Protocol Version 4 (IPv4). In order to support IPv6, new USS BPX calls for the IBM name resolver were introduced to implement the protocol-independent resolver functions that are described in the RFC 3493 specification. Here is a list of the IBM name resolver functions that are supported in IPv6 and IPv4:
When the IBM z/OS Name Resolver is started, it reads the IBM configuration file that is pointed to by the