Networking on z/OS
Previous topic | Next topic | Contents | Glossary | Contact z/OS | PDF


The search order for resolver configuration information

Networking on z/OS

GLOBALTCPIPDATA is used for both z/OS UNIX and MVS IP applications. Then, z/OS UNIX applications look for RESOLVER_CONFIG followed by /etc/resolver.conf. At this point, the remaining locations where an application might search for resolver configuration information is the same for both z/OS UNIX and MVS IP applications.

Here they are in the order in which they are searched for:

  1. //SYSTCPD DD card. The data set allocated to the DDname SYSTCPD is used. In the z/OS UNIX environment, a child process does not have access to the SYSTCPD DD. This is because the SYSTCPD allocation is not inherited from the parent process over the fork() or exec function calls.
  2. userid.TCPIP.DATA. "userid" is the user ID that is associated with the current security environment (address space or task/thread). An MVS environment application could theoretically run without an associated user ID. If so, the job name would be used for this data set instead.
  3. SYS1.TCPPARMS(TCPDATA)
  4. DEFAULTTCPIPDATA. If defined, the resolver DEFAULTTCPIPDATA setup statement value is used.
  5. TCPIP.TCPIP.DATA

Only the first file located is used. For example, if the first file found is SYS1.TCPPARMS(TCPDATA), then that is the only file used, even if DEFAULTTCPIPDATA and TCPIP.TCPIP.DATA exist.

Not all statements within resolver configuration files are treated equally. Some statements not globally defined (in GLOBALTCPIPDAT) can be located dynamically in files later in the search order. For example, if TCPIPJOBNAME is not located in the global file, it can be read in from the first of the subsequent files in the search order.

This makes sense because if more than one TCP/IP task is running, defining TCPIPJOBNAME in GLOBALTCPIPDATA would only allow one TCP/IP task to ever be accessed. By using something like RESOLVER_CONFIG or SYSTCPD, different job names could be specified for different environments or applications.

But not all of the statements get this second chance. Some statements, if not defined explicitly in a global file, are forced into default values. For example, the NAMESERVER statement, if not present in the GLOBALTCPIPDATA, defaults to a blank, disabling all name server function.

When configuration time comes, each statement that is needed for an application should be reviewed to determine where it would best be located.





Copyright IBM Corporation 1990, 2010