I had a fun support call I need to share. A developer called up to tell me that a particular dev instance was offline. He informed me that the server SQL08\DEV01 (the names have been changed to protect the innocent) server was completely inaccessible. I knew that multiple development teams would shortly be calling and that I’d better get on this issue most riki-tik. I quickly typed the connection string into Management Studio and watched in confusion as the server instance popped up on my screen. It was fine. I did a number of checks, looking for active connections, recent connections, errors in the log, indications of a recent reboot… Nothing.
I called the developer back and told him that the server was fine. He called me again in two minutes to tell me that it was still offline, or was offline again. My connection was still open so I checked everything a second time, with the guy on the phone. I told him, no, it’s still there. Then he said, “Wait, which SQL08\DEV01 are you looking at? Is it the one with database X or database Y.” Now I was confused, but looked at the database list and told him that database X was on the server. “I want the other SQL08\DEV01″ he then told me. The other one? What the…
Then it hit me. We have quite a few instances of development servers all running on the same server. So I started checking instances, looking at the databases on them and finally found that SQL08\DEV04 was what the guy needed. I called back and told him that he had the wrong instance and needed to change his connection string. I was then given a lecture that he had been using different copies of SQL08\DEV01 for quite some time and could I please find someone who knew what they were talking about to help him… Yeah, one of THOSE developers.
After a couple of deep, cleansing breaths, and one more fervent wish that the company would let me hang a heavy bag in my cubicle as a means of further relaxation during trying episodes (I promised not to put people’s faces, likenesses, caricatures or even names on the bag), I got back on the phone with him. I asked him to send me over his connection string so I could see what was going on.
When I got it I saw an interesting point. He had the server name & instance, but he also listed a port. It just so happens that we’d had an issue with the DEV04 instance and had recently recreated it from scratch. I guess whoever did it let it get a different port in the process. Mr. Knowledgable had been connecting to the wrong instance because, and this is the kicker, when you supply a port to the connection string, it ignores the instance name. This is why he was able to connect to the “other” DEV01 instance. Just something else to watch for.