Режим сторожевого таймера
Такой режим активируется при запуске Updater.exe
с параметром wthtimer
:
Updater.exe -wthtimer
Updater не допускает повторный запуск себя в одинаковом режиме (невозможно запустить два процесса Updater.exe
в режиме сторожевого таймера). При этом Updater.exe
может быть запущен в разных режимах одновременно.
Общее описание функции
В этом режиме Updater следит за работоспособностью ПО PayPRO. Если платежное ПО зависло или внепланово закрылось - Updater незамедлительно восстановит его работу. По умолчанию режим сторожевого таймера включен, его настройка не требуется.
T.exe
) также выступает в роли сторожевого таймера для программы Updater. Если Updater закрылся, то ПО снова запустит его. Таким образом эти две программы контролируют стабильность работы друг друга и исключают сбои или зависания ПО обеспечивая стабильную работу терминала и прием платежей.
Принцип определения зависания
- Во время работы
T.exe
пишет в файлwatchdog.timer
текущее время с определенным интервалом. - С другим интервалом Updater проверяет данные в этом файле и если обнаруживается, что данные не записываются более 5 минут - Updater констатирует, что
T.exe
завис и пытается его закрыть. Сначала корректно, но если по окончанию отведенного на это времени закрытия не происходит - жестко прерывает процессT.exe
.
Принцип определения неожиданного закрытия ПО
- Если Updater определяет, что
T.exe
пропал из списка процессов, то осуществляет его немедленный запуск. - При этом не анализируются данные в файле
watchdog.timer
, даже если запись в этот файл производилась совсем недавно.
Особые условия
Файл ''watchdog.nostart''
T.exe
не будет запущен, если в папке с программой есть файлwatchdog.nostart
. Этот файл является признаком того, что Updater в режиме сторожевого таймера не должен производить никаких действий. Такой файл создается самой программой при обновлении программы (в это времяT.exe
закрывается на время его обновления, файлwatchdog.nostart
препятствует преждевременному запуску программы).- Также файл
watchdog.nostart
создается при закрытии программы из административного меню. Все другие способы закрытия программы приведут к ее повторному запуску. Поэтому если вам требуется закрыть ПО - пользуйтесь закрытием ПО через административное меню. T.exe
при запуске удаляет файлwatchdog.nostart
.- В файл
watchdog.nostart
записывается причина по которой не следует запускать ПО и время возникновения события. Информация является справочной.
Файл ''Flags\failure.flg''
- При закрытии или запуске
T.exe
сторожевым таймером в папкеFlags
создается файлfailure.flg
. В него записывается причина запуска или закрытия программы. - Файл используется
T.exe
во время запуска для определения были ли проблемы в работе ПО. Очевидно, что если такой файл создался, то перед запуском ПО зависло или произошел сбой в его работе. Сообщения об этом фиксируются в логе и передаются в Диспетчерскую. T.exe
при запуске удаляет файлfailure.flg
.
T.exe
в папке Flags
создается файл working.flg
(с временем запуска и текстом «Терминал запущен»). Данный файл существует во время работы ПО и удаляется самой программой в момент корректного завершения работы.
Однако при выключении питания компьютера этот файл остается, что является признаком некорректного закрытия программы. Одновременно с этим анализируется наличие файла failure.flg
и если failure.flg
отсутствует, значит было не зависание ПО, а именно выключение питания (иначе сторожевой таймер создал бы файл failure.flg
). Если есть оба файла - значит зависание ПО. Именно таким образом ПО определяет точную причину некорректного завершения работы.
Также если файл working.flg
отсутствует, но присутствует файл failure.flg
- это означает корректное завершение работы, однако сторожевой таймер все-равно запустил ПО. Если сторожевой таймер запустил ПО, значит при корректном завершении работы не был создан файл watchdog.nostart
. Таким образом программа делает вывод, что запуск ПО произведен после корректного закрытия, но закрытие было не из админ.меню (например, через диспетчер задач или по Alt+F4). Для того, чтобы ПО не перезапускалось автоматически необходимо закрыть ПО через админ.меню по кнопке «Завершить работу ПО».