TCP/IP port considerations for Db2 Text Search and Windows

On 32-bit Windows operating systems, your ability to handle high query loads is affected by the number of TCP/IP ports and the wait time to reuse a port.

Port assignments on Windows (32-bit)

The integrated Db2 Text Search runs as a separate process on the same host as the database server. The database server and text server communicate through a TCP/IP connection.

The number of available ports for TCP/IP connections is influenced by the number of ports and the wait time to reuse a port after a connection is closed. The default configuration values for these parameters might not be sufficient to provide enough available ports to serve a high query load. If you have too few TCP/IP ports, you might get an CIE00756 Connection failed error.

If a CIE00756 Connection failed error occurs, run the following commands to view port usage on the server:
netstat -n
netstat -n | c:\windows\system32\find /I <port_number>

If the output shows many TCP/IP connections and local addresses 127.0.0.1:port_number in TIME_WAIT state, the server is likely running out of TCP/IP ports.

You can determine the Db2 Text Search port numbers by issuing the following command:
configTool printAdminHTTPPort -configPath %INSTPROF%\%DB2INSTANCE%\db2tss\config
where, INSTPROF is set to the value of the DB2INSTPROF registry variable applicable to integrated Db2 Text Search server setups.

Port settings

Port settings are controlled by the following registry entries that are found in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters:
  • TcpTimedWaitDelay

    A DWORD value, in the range 30 - 300, that determines the time in seconds that elapses before TCP/IP can release a closed connection and reuse its resources. Set the TcpTimedWaitDelay value to a low value to reduce the amount of time that sockets stay in TIME_WAIT state.

  • MaxUserPort

    A DWORD value that determines the highest port number that TCP/IP can assign when an application requests an available user port. Set MaxUserPort to a high value to increase the total number of sockets that can be connected to the port.

A system making many connection requests might perform better if TcpTimedWaitDelay is set to 30 seconds, and MaxUserPort is set to 32678.

After adding or changing the registry entries, reboot the Windows machine to reflect the changes.