Vineet
Vineet

Reputation: 81

How to add Failover Partner to a connection string in VB.NET

I have a windows application connecting to Database to read some data. Since the database is setup for resilience, my application needs to connect to one of the two databases. Can someone specify the what the syntax would be to specify the failover partner in a connection string using sql server authentication.

Any help is greatly appreciated.

Upvotes: 4

Views: 19536

Answers (3)

Adam Clark
Adam Clark

Reputation: 19

If you do not have mirroring set up between SQL servers, you can achieve this by using .net. simply in a catch statement.

Code below..

enter code here
Imports System.Data.SqlClient
Imports System.Data

Public Class dbConn
Private primaryServerLocation As String = "SERVER=primaryAddress;DATABASE=yourDB;User id=youruserID;Password=yourPassword;"
Private secondaryServerLocation As String = "SERVER=secondaryAddress;DATABASE=yourDB;User id=youruserID;Password=yourPassword;"


Public sqlConnection As SqlConnection
Public cmd As SqlCommand

Public Sub primaryConnection()
    Try
        sqlConnection = New System.Data.SqlClient.SqlConnection(primaryServerLocation)
        cmd = New System.Data.SqlClient.SqlCommand()

        'test connection
        sqlConnection.Open()
        sqlConnection.Close()
    Catch ex As Exception
        secondaryConnection()
    End Try
End Sub

Public Sub secondaryConnection()
    'Used as the failover secondary server if primary is down.
    Try
        sqlConnection = New System.Data.SqlClient.SqlConnection(secondaryServerLocation)
        cmd = New System.Data.SqlClient.SqlCommand()

        'test connection
        sqlConnection.Open()
        sqlConnection.Close()
    Catch ex As Exception
    End Try
End Sub
End Class

Upvotes: 0

Adam Hughes
Adam Hughes

Reputation: 3802

If you supply the name of a failover partner server in the connection string, the client will transparently attempt a connection with the failover partner if the principal database is unavailable when the client application first connects.

";Failover Partner=PartnerServerName"

If you omit the name of the failover partner server and the principal database is unavailable when the client application first connects then a SqlException is raised.

Source

Upvotes: 1

Joel Coehoorn
Joel Coehoorn

Reputation: 415600

Check connectionstrings.com:

Database mirroring
If you connect with ADO.NET or the SQL Native Client to a database that is being mirrored, your application can take advantage of the drivers ability to automatically redirect connections when a database mirroring failover occurs. You must specify the initial principal server and database in the connection string and the failover partner server.

Data Source=myServerAddress;Failover Partner=myMirrorServerAddress;Initial
Catalog=myDataBase;Integrated Security=True;

There is ofcourse many other ways to write the connection string using database mirroring, this is just one example pointing out the failover functionality. You can combine this with the other connection strings options available.

Upvotes: 11

Related Questions