>The SQL Server is local so I will stop the service. But I wonder what actually happens on the customer SQL Server; as far as I know, nobody stops the server. And I doubt that they unplug the LAN card. Yet, I get these messages "Communication link failure."
Another way to simulate it is to change the value of your handle - wrong handle, no connection (even though the connection actually still works, but you are using the wrong handle).
Other possible reasons for disconnects are bad cables, bad plugs on cables, overcrowded network (so your failure is not really a failure, just a timeout), users unplugging the desktop to plug in a laptop (I've seen this happen, you wouldn't believe), some machinery creating electrical noise (x-ray does it, welding does it, strong enough speakers may do it, large electrical motors starting may do it)... and then there's more.