We have a SQL Server 2005 EE 64x mirror enviornment set up; but even though the SQL Servers looks like they are performing their duties properly. The application doesn’t seem to want to a SQL Server in one senerio.
Configuration:
SQLServerA (Principle)
SQLServerB (Mirror)
SQLServerC (Witness)
Connection String:
Data Source=SQLServerA; Failover Partner=SQLServerB; Initial Catalog=MyDatabase; Integrated Security=True;
All three servers are up and working, with the connection string above system works properly as expected. We manually failover . . .
Configuration:
SQLServerA (Mirror)
SQLServerB (Principle)
SQLServerC (Witness)
Connection String:
Data Source=SQLServerA; Failover Partner=SQLServerB; Initial Catalog=MyDatabase; Integrated Security=True;
Both servers still up, the application hits SQLServerA, gets failed login. And after refreshing it goes to SQLServerB and works without any issue. But now if I take down the servers for SQL Server on SQLServerA. So only SQLServerB and SQLServerC are up the application stops working.
Talking to Mike at Microsoft, he gave me article that he found in their knowledge base
http://support.microsoft.com/Default.aspx?kbid=912151 and said the clients that ran this patch it worked for them.
So we did this, and now the server works even with SQLServerA being down; but we have to refresh twice. So we are in middle of writing a quick test page that catches the expection and auto reconnects to see if that will work.
We tested the mirroring solution it seems to work but not. I have find out of the Mirroring has any issue with web-based applications.Trying to understand how does the SQL Native Client determine the availability of the principle serving the database.- Does it talk to principle server and says hey something is wrong with the database I’ll goto Mirror (because it got failed logon)?- Does it figure out among it self (SQL Native Client) that the primary is not available by caching and foward the connection to proper location?- Does it ping the principle to see if its availability.