It’s common to be called to find out why an app cannot connect to one of your database servers. So you start by checking the server, and it’s working just fine. Then, you check the client machine and its database connectivity to the server, and that is also no problem. But still, the app continues to fail on trying to connect to the server.
Naturally, you start to question whether the app is trying to connect to the right server, i.e. the server you have just checked. But the app folks swear up and down that it is the right server name, and they even show you the name in the their configuration file. Sure enough, that’s the name specified in the config file.
What do you do now?
You need to absolutely verify what server the app is really trying to connect to, not what people may believe it is trying to connect to. Here, Process Explorer can come in very handy.
So, simply fire up Process Explorer (you can launch it from command line as procexp), and double click on the app’s process. Go to TCP/IP tab, and watch which server it tries to connect. When it tries to connect to server XYZ, you should see a line showing XYZ in the Remote Address column along with SYN_SENT in the State column.
Process Explorer is a fantastic tool that is widely known and used in many troubleshooting situations already. The above is one of the situations where it can save you tons of time chasing ghosts.