When running with multiple transport providers, just as it is necessary
to synchronize PORT reservations for specific applications across
all stacks, it is required to synchronize reservations for port numbers
that will be dynamically assigned across all stacks. These are the
ephemeral ports above 1023, which are assigned by the stack when none
is specified on the application bind(). To reserve
a group of ports in the PROFILE.TCPIP, use PORTRANGE. For more information
about PORTRANGE, see TCP/IP Customization.
Specify the same PORTRANGE for every stack. In addition, you must
let the z/OS® UNIX CINET know which ports are guaranteed to
be available on every stack. The following example reserves ports
40000 - 41999 in the two required files:
- PROFILE.TCPIP
- PORTRANGE 40000 2000 TCP OMVS ; Reserved for OMVS
- PORTRANGE 40000 2000 UDP OMVS ; Reserved for OMVS
- BPXPRMxx parmlib member
- NETWORK DOMAINNAME(AF_INET)
- INADDRANYPORT(40000)
- INADDRANYCOUNT(2000)
Notes: - When IPv6 is configured and there are two NETWORK statements,
INADDRANYPORT and INADDRANYCOUNT need to be specified only for the
NETWORK statement for AF_INET and not for AF_INET6. If they are specified
for AF_INET6, they are ignored and the values from the NETWORK statement
for AF_INET are used if provided. Otherwise, the default values are
used.
- In a CINET environment, you can use IBM® Health
Checker for z/OS to check whether
the range of ports specified by the INADDRANYPORT and INADDRANYCOUNT
operands of the BPXPRMxx parmlib member
is reserved for OMVS on the TCP/IP stack. For more information about IBM Health Checker
for z/OS, see z/OS Communications Server: IP Diagnosis Guide.