Добрый день коллеги!
Досталась система с использованием БД на MS SQL сервер (зеркало, т.е. имеется два сервера БД: основной и резервный + следящий сервер, который меняет местами основной и резервный сервер в случае проблем). Это вся цепочка работает.
Вопрос в следующем: UniConnection имеет возможность автоматического переключения между серверами в случае смены их ролей (т.е. когда резервный сервер становится основным, а основной - резервным) "на лету" ?
1. Технология здесь не Always On, а простое зеркало.
2. Вариант с остановкой всех клиентских программ, изменения строки подключения на нужный сервер, перезапуск программ - как-то не очень :( Хотя работает.
3. Рассматривал события OnConnectionLost (если смена ролей серверов произошла во время работы) и OnConnectionError(если смена ролей произошла еще до запуска клиентского ПО). В них менял строку подключения и пытался переподключиться к БД. Но как-то не очень получалась. Возможно что-то делаю не так.
Реализуемо ли на Uni компонентах подобное решение ?
Заранее спасибо за ответ.
UniConnection и БД на SQL сервере в зеркальном отражении
Re: UniConnection и БД на SQL сервере в зеркальном отражении
UniDAC поддерживает технологию SQL Server Always On, но собственной реализаций автоматического переподключения к резервному серверу, при разрыве соединения, UniDAC не имеет. Для того, чтобы использовать обработчик события OnConnectionLost, необходимо добавить модуль MemData и установить для свойства TUniConnection.Options.LocalFailover значение True. Вы можете сами реализовать подключение к резервному серверу, при разрыве соединения.
Подробнее о OnConnectionLost:
devart.com/unidac/docs/devart.dac.tcustomdaconnection.onconnectionlost.htm
Подробнее о OnConnectionLost:
devart.com/unidac/docs/devart.dac.tcustomdaconnection.onconnectionlost.htm