Мониторинг линий связи

Мониторинг линий связи выполняется с использованием локальной сети. Каждая из управляющих программ на всем протяжении своей работы осуществляет периодическую (см. ключ /testint) посылку тестовых пакетов всем удаленным узлам системы резервирования. Посылка тестовых пакетов выполняется независимо от факта работоспособности (включен или выключен) удаленного сервера резервирования. Посылка пакетов производится по UDP-протоколу на тот же номер порта, который используется для работы сетевого драйвера сервера dbs_tcp по TCP-протоколу.

Каждый из серверов принимает тестовые пакеты и следит за количеством пропущенных пакетов, посылаемых по данной линии связи (от данного узла). Если от узла не поступает ни одного из заданного количества пакетов (см. ключ /tstlimit), линия связи к удаленному узлу считается разорванной. Другими словами, линия связи считается разорванной в случае истечения тайм-аута, определяемого произведением значений ключей /testint и /tstlimit.

Действия серверов при обрыве линии связи:

  • главный сервер при обнаружении обрыва линии связи не предпринимает никаких действий, за исключением, возможно, вызова обработчика этого события. Он считает, что переход на одну из запасных линий связи произойдет автоматически;

  • резервный сервер при обнаружении разрыва основной линии связи прекращает работу утилиты lhb (если она не прекратила работу самостоятельно), ядра СУБД ЛИНТЕР в специальном режиме и затем выполняет их перезапуск. При этом lhb осуществляет соединение с другим узлом главного сервера. В случае разрыва запасной линии связи резервный сервер не предпринимает никаких действий. Вызов обработчика осуществляется при обрыве любой линии связи.