Tracing a remote Gen 8.6 application on Solaris server using the Windows Diagram Trace Utility (DTU). The initial connection from the server application to the DTU listening port 4567 is successful but the subsequent Control Connection back to the server fails. The DTU console log shows:
Listening started, port: 4567
Detected V3 Session
Initiating session with "/server_ip:36610"
Failed to establish Control Connection with "server_ip:36611"
*** Not all debugging features will be available.
*** Often caused by a firewall preventing connections back to the client.
*** Reason: "java.net.ConnectException: Connection timed out: connect"
Gen 8.6 Diagram Trace Utility
The sequence of events for the DTU connection is:
The available/ephemeral port used on the server cannot be specified as a fixed value. Therefore the server firewall needs to be open for all possible ephemeral ports to allow the Control Connection to succeed.
Open the firewall on the server for all possible ephemeral ports.
On most Unix platforms the ephemeral port range defaults to 32768-65535 but this can be controlled by changing the kernel parameters "tcp_smallest_anon_port" and "tcp_largest_anon_port".
For example for Solaris here is a link from the Oracle DB documentation: Setting UDP and TCP Kernel Parameters Manually
For Red Hat Linux the equivalent kernel parameter is "ip_local_port_range" (/proc/sys/net/ipv4/ip_local_port_range) and defaults to 32768-60999.
Red Hat Enterprise Linux > 7 > Kernel Administration Guide > Chapter 2. Working with sysctl and kernel tunables# sysctl -A | grep ip_local_port_range