Вопрос о соединении с SQL Server 2005 - PullRequest
0 голосов
/ 26 ноября 2009

В SQL Server 2005 есть способ указать более одной строки подключения из приложения .NET, при этом одна из них является основным предпочтительным соединением, но если оно недоступно, по умолчанию выполняется попытка установить другое соединение (которое может происходить). к разным БД / серверу и т. д.)?

Если ничего подобного нет, можем ли мы что-нибудь использовать, не прибегая к написанию какого-либо циклического кода для проверки соединений?

Спасибо.

Ответы [ 3 ]

1 голос
/ 26 ноября 2009

Мы обычно используем композицию на наших объектах SqlConnection, чтобы проверить это. Весь доступ к данным осуществляется с помощью внутренних классов, и мы указываем несколько серверов в файле web / app.config. (Простите за любые ошибки, я пишу это от руки)

Это будет выглядеть примерно так:

class MyComponent
    {
    private SqlConnection connection;

    ....
    public void CheckServers()
    {
        // Cycle through servers in configuration files, finding one that is usable
        // When one is found assign the connection string to the SqlConnection
        // a simple but resource intensive way of checking for connectivity, is by attempting to run
        // a small query and checking the return value
    }
    public void Open()
    {

        connection.Open();

    }

    public ConnectionState State
    {
        get {return connection.State;}
        set {connection.State = value;}
    }
    // Use this method to return the selected connection string
    public string SelectedConnectionString
    {
        get { return connection.ConnectionString; }
    }
    //and so on
}

Этот пример не включает проверку ошибок или регистрацию ошибок, убедитесь, что вы добавили это, чтобы объект мог опционально сообщать, какие соединения были неудачными и почему.

1 голос
/ 26 ноября 2009

Если вы захотите получить доступ к тому же набору данных, то для обеспечения высокой доступности вы будете использовать кластеризацию или зеркалирование.

  • Поставщик SQLNCLI поддерживает зеркалирование базы данных SQL Server

    Provider=SQLNCLI;Data Source=myServer;Failover Partner=myMirrorServer

  • При кластеризации используется только имя экземпляра виртуального SQL.

В противном случае, я не могу понять, почему вы хотите это сделать ...

0 голосов
/ 26 ноября 2009

К сожалению, нет методов FCL, которые делают это - вам нужно будет реализовать это самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...