code_junkie

How can I get notification when a mirrored SQL Server database has failed over

Nov 10th, 2011
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.95 KB | None | 0 0
  1. using System;
  2. using System.Data.SqlClient;
  3.  
  4. namespace FailoverMonitorConcept
  5. {
  6. class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. string server = args[0];
  11. string failover = args[1];
  12. string database = args[2];
  13.  
  14. string connStr = string.Format("Integrated Security=SSPI;Persist Security Info=True;Data Source={0};Failover Partner={1};Packet Size=4096;Initial Catalog={2}", server, failover, database);
  15. string sql = "EXEC sp_helpserver";
  16.  
  17. SqlConnection dc = new SqlConnection(connStr);
  18. SqlCommand cmd = new SqlCommand(sql, dc);
  19. Console.WriteLine("Connection string: " + connStr);
  20. Console.WriteLine("Press any key to test, press q to quit");
  21.  
  22. string priorServerName = "";
  23. char key = ' ';
  24.  
  25. while(key.ToString().ToLower() != "q")
  26. {
  27. dc.Open();
  28. try
  29. {
  30. string serverName = cmd.ExecuteScalar() as string;
  31. Console.WriteLine(DateTime.Now.ToLongTimeString() + " - Server name: " + serverName);
  32. if (priorServerName == "")
  33. {
  34. priorServerName = serverName;
  35. }
  36. else if (priorServerName != serverName)
  37. {
  38. Console.WriteLine("***** SERVER CHANGED *****");
  39. Console.WriteLine("New server: " + serverName);
  40. priorServerName = serverName;
  41. }
  42. }
  43. catch (System.Data.SqlClient.SqlException ex)
  44. {
  45. Console.WriteLine("Error: " + ex.ToString());
  46. }
  47. finally
  48. {
  49. dc.Close();
  50. }
  51. key = Console.ReadKey(true).KeyChar;
  52.  
  53. }
  54.  
  55. Console.WriteLine("Finis!");
  56.  
  57. }
  58. }
  59. }
Add Comment
Please, Sign In to add comment