Синхронизация завершения работы СУБД
Для синхронизации завершения работы СУБД ЛИНТЕР с ОС типа UNIX используется программа lsyncd. Данная программа передает управление ОС после полного завершения работы ядра СУБД. Обычно она применяется совместно с программой shut в скриптах на закрытие ОС.
Запуск программы:
lsyncd [-t < тайм-аут >]
< Тайм-аут >
– тайм-аут (в секундах) ожидания завершения работы ядра СУБД ЛИНТЕР.
Если параметр не задан, по умолчанию используется значение 30 секунд.
Программа lsyncd предназначена для определения момента фактического завершения работы ядра СУБД ЛИНТЕР. При подаче команды shut с использованием программы shut или из прикладной программы пользователем, имеющим привилегии на выполнение этой операции, происходит только инициирование начала процесса завершения работы. Ответ ядра на эту команду немедленно передается пославшей ее программе, и она имеет возможность сообщить об успешном начале процесса завершения работы ядра СУБД. Однако сам процесс останова СУБД занимает определенное время. Для определения реального момента завершения работы ядра СУБД ЛИНТЕР служит программа lsyncd.
После запуска данной программы она переходит в состояние ожидания (об этом свидетельствует выводимая ею строка Wait for LINTER shutdown) и находится в этом состоянии до тех пор, пока ядро СУБД ЛИНТЕР существует как задача ОС. По окончании процесса завершения работы ядра СУБД ЛИНТЕР программа выводит на экран строку complete и завершает свою работу.
Если при запуске lsyncd ядро СУБД ЛИНТЕР не активно, программа завершает свою работу немедленно с выдачей соответствующего сообщения.
Так же, как и для обычных клиентов, для перенаправления слежения за другим ядром можно использовать
переменную окружения LINTER_MBX
. Ее значение должно
совпадать со значением этой переменной при запуске ядра СУБД ЛИНТЕР. Программа lsyncd
может применяться только на том компьютере, на котором запущено выполнение ядра СУБД ЛИНТЕР. Работа по сети невозможна.
Программа lsyncd должна выполняться пользователем ОС, который запустил ядро СУБД ЛИНТЕР, или суперпользователем ОС.
Для ipc-версии СУБД ЛИНТЕР проверка активности ядра производится каждую секунду.
Для socket-версии завершение работы программы происходит немедленно после завершения работы ядра СУБД ЛИНТЕР.
Если по истечении тайм-аута ядро СУБД ЛИНТЕР еще активно, происходит окончание работы lsyncd с кодом завершения -1. Если же ядро СУБД ЛИНТЕР не загружено или в процессе работы lsyncd уже завершило свою работу, код завершения будет равен 0.