Configuring ports for WML for z/OS

WML for z/OS requires dedicated networks and ports for communication across component systems and services. Some of the ports are predefined while others can be user-defined. You must configure all the required networks and ports in your firewall before the installation of WMLz.

The following ports are required for installing and running WMLz on z/OS. Based on your WMLz configuration, exceptions are noted wherever applicable.

Tip:
  • As described in Supported browsers, WML for z/OS web user interfaces run on Mozilla Firefox and Google Chrome. Both browsers block certain ports by default. Avoid assigning any browser restricted port. See Firefox port blocking and Chrome port access restrictions for details.
  • For any of the ports you assign, do not define SHAREEPORT unless you plan to configure a WMLz cluster and scoring service clusters for high availability.
  • After you configure the ports, make sure that all WMLz component systems and services in your installation can communicate with each other.
System or service Port number Outbound system Inbound system Default address space
Db2® for z/OS User-defined1 z/OS system Db2 subsystem Your Db2 address space
z/OS Spark master 7077 or user-defined z/OS system z/OS Spark system ALNSPKM
z/OS Spark master REST API 6066 or user-defined z/OS system z/OS Spark system ALNSPKM
z/OS Spark master UI 8080 or user-defined2 Your network z/OS Spark system ALNSPKM
z/OS Spark worker Dynamically assigned or user-defined z/OS system z/OS Spark system ALNSPKW
z/OS Spark worker UI 8081 or user-defined2 Your network z/OS Spark system ALNSPKW
z/OS Spark executor Dynamically assigned or user-defined3 z/OS system z/OS Spark system ALNSPKX
z/OS Spark driver Dynamically assigned or user-defined4 z/OS system z/OS Spark system ALNSPKD
ALNKSPK5
Spark-integration service 10080 or user-defined z/OS system z/OS system ALNSISV
Scoring service User-defined6 z/OS system Liberty Profile for z/OS system ALNSCSV
Scoring service Dynamically assigned or user-defined7 z/OS system z/OS system ALNSCSV
Jupyter Kernel Gateway 8889 or user-defined8 z/OS system z/OS Spark system, Python run time for z/OS ALNKGSV
Apache Toree kernel User-defined (A range of port numbers in consecutive order)8,9 None z/OS system ALNKSPK
Python kernel User-defined (A range of port numbers in consecutive order)8,9 None z/OS system ALNKPYH
UI service 9888 or user-defined2 Your network z/OS system ALNWEBS
Core services 11442 or user-defined z/OS system, Liberty Profile for z/OS, Python run time for z/OS z/OS system ALNSERV
Configuration tool service 50000 or user-defined2 Your network z/OS system ALNTOOL
zCX Docker CLI 8022 or user-defined10 z/OS system zCX instance Your zCX instance address space
ONNX compiler service 18080 or user-defined10 z/OS system zCX instance Your zCX instance address space
Python scoring service User-defined11 Liberty Profile for z/OS system uWSGI for z/OS system ALNSCPY
Db2 anomaly detection service 15001 or user-defined2 Your network z/OS Spark system ALNITOA
MDS server User-defined12 z/OS system MDS subsystem Your MDS server subsystem ID
Notes:
  • 1 The assignment of this port depends on your Db2 configuration.
  • 2 This port must be accessible by a web browser outside of the LPAR firewall.
  • 3 Each executor launched by a Spark application uses one port for the block manager. The starting number for the executor port is set by the spark.blockManager.port option in the spark-defaults.conf configuration file. If the executor cannot bind to the specified port, it tries again by automatically incrementing the port number by 1 (+1) until the maximum number of retries defined by the spark.port.maxRetries option is reached. The default is 16 retries. A bound port is released when the Spark application completes its task. By default, WMLz configures Spark to use one executor per application. You must carefully plan the allocation of consecutive ports and the maximum number of retries for the executor based on the number of concurrent Spark applications that you will run. For example, if you plan to set spark.port.maxRetries to the default 16, you must allocate a range of 17 consecutive ports so that you can run 17 Spark applications at the same time.
  • 4 Each driver launched by a Spark application uses one port to communicate with the executor and allocates another one for the driver block manager. While the starting number for the driver port is set by the spark.driver.port option in the spark-defaults.conf configuration file, the starting number for the driver block manager is set by the spark.driver.blockManager.port option. If the driver cannot bind to either specified port, it tries again by automatically incrementing the port number by 1 (+1) until the maximum number of retries defined by the spark.port.maxRetries option is reached. The default is 16 retries. A bound driver port and driver block manager port is released when the Spark application completes its task. You must carefully plan the allocation of consecutive ports and the maximum number of retries for both the driver and the driver block manager based on the number of concurrent Spark applications that you will run. For example, if you plan to set spark.port.maxRetries to the default 16, you must allocate one range of 17 consecutive ports for the driver and another one of 17 consecutive ports for the driver block manager so that you can run 17 Spark applications at the same time.
  • 5 Address space ALNKSPRK is applicable only if you plan to configure your WMLz with a Python runtime environment.
  • 6 The assignment of this port depends on the configuration of the Liberty Profile server and the scoring service.
  • 7 The two ports are dynamically assigned and used by the Spark session locally created by the scoring service for communication between the driver and the executor. Otherwise, you can define the ports by setting the spark.driver.port and spark.blockManager.port options in the spark.properties.scoringServerName file.
  • 8 This port is required only if you plan to configure your WMLz with a Python runtime environment.
  • 9 Each Python or Toree kernel must be assigned 5 port numbers in consecutive order. All port numbers in the range must be in consecutive order. For example, if you use eight kernels in your setup, you must prepare a total of 40 ports starting from the first port number.
  • 10 The assignment of this port is required only if you choose to enable the feature for importing ONNX models and using zCX for hosting the ONNX compilation service.
  • 11 The assignment of this assignment is required only if you choose to enable Python scoring in the configuration of your scoring service.
  • 12 The assignment of this port is required only if you plan to use the Db2 anomaly detection solution or the MDS server to access data sources. See Customizing the server initialization member for MDS-related TCP/IP and port information. Make sure the assigned port can be bound by the MDS server subsystem ID.