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

后端 未结 3 439
闹比i
闹比i 2020-12-10 08:52

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 database

相关标签:
3条回答
  • 2020-12-10 09:26

    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
    
    0 讨论(0)
  • 2020-12-10 09:27

    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.

    0 讨论(0)
  • 2020-12-10 09:34

    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

    0 讨论(0)
提交回复
热议问题