There is an old issue where the solution has been posted a few times in these forums, and then long forgotten.
This certainly affects D3 but I'd like to know if it affects other platforms.
I'm providing a solution here and hope that others can try and verify this. With confirmed success I'll see if I can get some permanent documentation.
The issue is that there is often a delay on the connection to a D3 environment.
Is this specific to D3? I dunno.
Is this specific to Windows as a client, or as a Server? I dunno.
The issue seems to be that D3 is doing a reverse DNS lookup, trying to resolve hostnames and IPs, and that takes some time.
Does it need to get an IP for a hostname? I dunno.
Does it need to get a hostname for an IP? I dunno.
Is it trying to resolve its own IP address when the inbound client is referring to it by hostname? I dunno.
Is this only for Telnet, not for SSH? I dunno.
What I do know is, when we Telnet to D3, even on localhost, there is a weird delay that one would not expect.
And there are two kinds of delay: The first is to get the User ID prompt. The second is to get the password prompt.
See below for yet a third.
The solution here is to ensure that the client and server systems know as much as possible about the connections, so that they do not need to call out to a gateway or DNS.
This means adding all relevant hostname/IP combinations to client and server /etc/hosts and System32\Drivers\etc\hosts.
With this, the connection time should be exactly the same, and near zero, for all requests:
127.0.0.1 localhost thishostname thishostname.domain
192.168.000.000 thishostname
192.168.000.001 gateway gateway.domain
192.168.000.002 dns dns.domain
# change IPs as required
Yes, I'm sure those familiar with this area will note anomalies. Those aren't real IP addresses, they're placeholders so that you can use your own. What happens if there are two entries for the same host? What if we're using NAT and dynamic IPs.
This is NOT an exercise in learning about how etc/hosts works, or DNS or gateways or NAT or the Telnet protocol. Everyone can get educated on that topic elsewhere. PLEASE don't burden this thread with questions about permissions issues, inability to use Notepad, etc. PLEASE learn about these things and resolve those issues elsewhere.
This IS a heads-up that you can get a faster connection to your MV environment if you modify etc/hosts. Full-stop.
I request and encourage colleagues to try the above changes, and if you perceive a performance benefit from local or remote clients, on any OS, please report back here in general what you did - specific IPs aren't advised.
If you have other tips in this area, please do share.
The reason I bring this up is that I do a lot of communications work, and depending on all of the above-mentioned details I find some connections take longer than others. It gets frustration. I decided to take a detailed look. I checked with Rocket Support and they confirmed that this is how they approach the topic as well.
As to that third kind of delay...
When you first boot D3, and then connect to any port, you do not immediately get the User prompt. You are connected, but D3 requires the client to provide an EOL (CR/CRLF) "activation" so that it will respond. When a port has already been used, the workspace is "primed" and we do not see this delay.
Example:
- Shutdown D3.
- Restart D3.
- Telnet to D3. You may not see a prompt.
- Press Enter. There's the prompt!
- Login, then exit, terminate the connection.
- Re-connect. If you have connected to the same port, you immediately get the prompt.
This inconstent behaviour presents a challenge in communications. It just requires us to send a CR as the first character after a connection, and Then wait for the User ID prompt. On connect we may already get that prompt, but we ignore it and send CR anyway. We will always get the prompt after CR, regardless of whether the port was "primed" or not.
Is that related to the reverse DNS lookup? I dunno. I'm trying to get a response on that. I do know that it's been like this since the 90's and everyone just accepts it as one of those "that's weird, whatevah" things. I do know that this has affected how I use every communications tool to connect to D3 ... always send that CR first, and Then expect the User prompt.
That's all I got. I hope it helps someone. And I hope we can get some more concrete info here to help everyone to improve their installations for themselves and posterity.
If you have something to add, please provide info about your client software, client OS, server OS, DBMS, connection type (telnet, ssh, d3tcl, udt, nailed ports), and the rough setup of your network with regard to the DNS and gateway locations.
Thanks for your time.
T