A fix is available
APAR status
Closed as program error.
Error description
Allow standalone Db2 subsystem location aliases be bound to a different IP address.
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All Distributed Data Facility (DDF) users. * * Especially those that utilize the TCPIP * * profile PORT statement BIND specification * * (also known as BINDSPECIFIC method) to * * define the IP address of a Db2 subsystem * * that is not a member of a data sharing * * group. * **************************************************************** * PROBLEM DESCRIPTION: IP address/port listen missing for * * connectivity to a standalone Db2 * * subsystem. * **************************************************************** * RECOMMENDATION: Apply corrective PTF when available * **************************************************************** When a standalone Db2 subsystem is started, the IP address for the Db2 subsystem is determined in the following ways: - Db2 uses the IPV4 or IPV6 specification in the BSDS - Db2 probes the TCP/IP stack to obtain the primary interface home IP address of the stack - Db2 learns its IP address from TCP/IP when it detects that the main PORT specification within the TCPIP profile PORT statement (a specification outside of Db2) has a BIND IP address specification When Db2 has no IPV4 or IPV6 specification in the BSDS and before it probes the TCP/IP stack, Db2 creates its listen socket and then binds this socket to INADDR_ANY. When the bind is successful, Db2 probes the stack to determine if the socket is still bound to INADDR_ANY. When Db2 learns that the MAIN port listen socket is not bound to INADDR_ANY, Db2 saves the returned IP address from TCP/IP as being the IP address of this standalone Db2 subsystem. Db2 displays its learned IP address in the DSNL085I message line of the output from the -DISPLAY DDF command. Db2 only tracks this single IP address. When the listen sockets for its main PORT and/or SECPORT are created and bound to the learned IP address, Db2 then activates any static or dynamic location aliases. During the activation of a location alias in a standalone Db2 subsystem where Db2 has learned its IP address from TCP/IP due to a PORT profile statement specification, Db2 will then create a single alias port and/or alias secure port listen socket bound to its learned IP address. However, a recent Db2 APAR corrected an unintended situation where Db2 incorrectly created two different listen sockets for an alias port and/or secure port for a standalone Db2 subsystem. Specifically, Db2 was incorrectly creating a second listen socket bound to INADDR_ANY. When the bind of a socket was received by TCP/IP and the bind IP address was INADDR_ANY, TCP/IP then used all parts of the port specification in the TCPIP profile PORT statement, including the BIND specification IP address by creating the IP address (unknown to Db2) and binding the alias port listen socket to this address. Db2 did not probe TCP/IP to determine if the alias port listen socket was still bound to INADDR_ANY. Before the unintended Db2 behavior was corrected, some customers were using it to create two different listen sockets for an alias port, especially when the alias port had a specification in the TCPIP profile PORT statement with a BIND IP address specification different than the main PORT specified for Db2. The result was two different listen sockets for the alias port, one correctly bound to Db2's learned IP address and a second incorrectly bound to the BIND IP address specification in the TCP/IP PORT profile statement for the alias port. With the recent correction, only the alias port listen socket bound to the learned IP address of the Db2 subsystem is created, and the "secondary socket" is NOT created.
Problem conclusion
When a standalone Db2 subsystem is started, Db2 has been changed to create its single listen socket for a location alias port or secure-port by requesting the socket be bound to INADDR_ANY. When the alias port specification in the TCPIP profile PORT statement includes a BIND IP address specification, the listen socket will be bound to the specified IP address. Normally, the BIND IP address specification should be the same as was specified for the main PORT of Db2. However, if the BIND IP address specification was different than was specified for the main PORT, the alias listen socket will be created bound to the BIND IP address specification and then the alias listen socket can then only be reached by targeting the alias port via its BIND IP address.
Temporary fix
Comments
APAR Information
APAR number
PH62990
Reported component name
DB2 OS/390 & Z/
Reported component ID
5740XYR00
Reported release
C10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2024-08-28
Closed date
2024-09-24
Last modified date
2024-11-03
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UI98541 UI98542
Modules/Macros
DSNLILNR
Fix information
Fixed component name
DB2 OS/390 & Z/
Fixed component ID
5740XYR00
Applicable component levels
Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.
[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSEPEK","label":"DB2 for z\/OS"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"12.0","Line of Business":{"code":"LOB10","label":"Data and AI"}}]
Document Information
Modified date:
03 November 2024