Z_DISTRIBUTE
Краткое описание :
Распределенный расчет зарплатыОписание :
Расчет начислений (общие вопросы)Что измененно :
Для ускорения расчета зарплаты можно запустить расчет на нескольких компьютерах по лицевым счетам разных подразделений.
Нужно автоматизировать этот процесс: реализовать возможность настройки и запуска расчета с одного компьютера, но с привлечением ресурсов других компьютеров в локальной сети. Диспетчер такого расчета должен каждый очередной лицевой счет попытаться отдать в обработку свободному серверу, а если свободных серверов не найдется, обработать его самостоятельно.
Как измененно :
Для ускорения расчета зарплаты на платформе Oracle реализован режим распределенного расчета на нескольких компьютерах. Один компьютер выступает в роли диспетчера, а остальные в роли серверов.
Сервер
---------------------
Реализован интерфейс "Сервер распределенного расчета" (доступен через меню "Заработная плата - Настройка - Администратор - Сервер распределенного расчета"). В окне интерфейса присутствуют следующие элементы:
- поле "Наименование" - отображает сетевое имя текущего компьютера, не доступно для редактирования.
- поле "Порт сервера" - позволяет указать локальный сетевой порт (https://ru.wikipedia.org/wiki/Порт_(компьютерные_сети)) на данном компьютере, через который будет выполняться передача команд серверу. Следует выбирать незанятый порт. Брендмауэр операционной системы должен разрешать входящие подключения через этот порт. По умолчанию значение 7777.
- поле "Описание" - позволяет ввести произвольный текст, идентифицирующий текущий сервер в списке серверов. По умолчанию инициализируется значением "Имени пользователя" из личной настройки пакета Microsoft Office, если он установлен.
- поле "Состояние" - отображает одно из состояний сервера:
- "Не инициализирован" - сервер не запущен.
- "Готов к работе" или "Обработано задач: %d. Готов к работе" - ожидает команды на расчет, отображает количество отработанных задач. Под задачей понимается предварительная разноска по одному ЛС, расчет начисления по одному ЛС, расчет удержаний по одному ЛС или расчет налогов на ФОТ по одному ЛС.
- сообщение об ошибке.
- кнопка [Старт] - запуск сервера.
- кнопка [Стоп] - остановка сервера.
Диспетчер
---------------------
Реализован диспетчер распределенного расчета, который позволяет при расчете зарплаты задействовать множество описанных выше серверов, активных в локальной сети на момент расчета. Список серверов задается в интерфейсе, доступном по F3 на поле "Распределенный расчет" на вкладке "Настройки расчета" окна параметров расчета зарплаты (Заработная плата - Операции - Расчет зарплаты - Расчет зарплаты). Диспетчер представлен в виде списка серверов. В этом списке доступно добавление серверов по F7, удаление по F8, редактирование по F4. В окне редактирования присутствуют следующие элементы:
- поле "Наименование" - в нем необходимо указать сетевое имя компьютера, который будет выступать в роли сервера. По умолчанию присваивается имя текущего компьютера. Один компьютер может выступать в роли диспетчера и серверов одновременно.
- поле "Порт сервера" - указывается номер сетевого порта, соответствующий номеру порта, заданному у сервера. По умолчанию 7777.
- поле "Длина очереди" - буфер заданий для сервера. Призван обеспечить постоянную загрузку сервера работой. Рекомендованное значение 3.
- поле "Описание" - позволяет ввести произвольный текст, идентифицирующий сервер в списке серверов.
- поле "Состояние" - отображает одно из состояний сервера:
- "Не инициализирован" - сервер не запущен.
- "Готов к работе" - ожидает команды на расчет.
- сообщение об ошибке, например, "Сервер не доступен", если не удалось установить с ним соединение.
- опция "Использовать при вычислениях" - позволяет указать какие сервера из списка будут участвовать в распределенном расчете. Для проверки состояния серверов из диспетчера предназначены локальные функции "Проверка подключения Alt+1" и "Пометить доступные Alt+2".
Помимо ручного добавления описаний серверов в список реализована автоматическая их регистрация. Для автоматической регистрации следует выполнить локальную функцию "Авторегистрация Alt+3", после чего откроется окно, в котором будет отображаться количество автоматически зарегистрированных серверов. Авторегистрация завершится после закрытия этого окна или нажатия кнопки [Завершить]. В процессе авторегистрации регистрироваться будут те серверы, которые стартуют в промежуток времени между началом и окончанием этого процесса.
Для выполнения авторегистрации необходима предварительная настройка - в конфигурационных файлах как серверов, так и диспетчера должны быть предварительно добавлены следующие элементы:
{PayrollDistributeManager}
CompName = 'CompName' // сетевое имя диспетчера
PortNumber = 7775 // сетевой порт диспетчера
'CompName' заменить на сетевое имя компьютера, который выступает в роли диспетчера. В конфигурационном файле Галактики, которая будет выступать в роли диспетчера этот параметр не обязателен, т.к. будет использовано сетевое имя компьютера. 7775 заменить, если необходимо, на номер порта, по которому диспетчер будет принимать информацию о стартовавших серверах. Следует выбирать незанятый порт. Брендмауэр операционной системы должен разрешать входящие подключения через этот порт на компьютере диспетчера и исходящие соединения на серверах.
Распределенный расчет
---------------------
Для выполнения расчета зарплаты с привлечением ресурсов распределенных серверов необходимо:
в списке серверов диспетчера пометить сервера, которые должны участвовать в расчете, нажать Enter. После этого в поле "Распределенный расчет" окна параметров расчета зарплаты отобразиться количество выбранных серверов, а в нижней панели этого окна появится метка "Распределенный расчет". После нажатия [Продолжить] расчет зарплаты будет выполняться как на текущем компьютере, так и на указанных серверах. После расчета в протокол выводится статистика по каждому этапу в следующем виде:
---------------------------- РАСЧЕТ НАЧИСЛЕНИЙ ---------------------------------
...
Расчет в режиме диспетчера - распределение списка ЛС между серверами.
Обработано ЛС: 20 (2 - в этом приложении, 18 - делегировано)
--------------------------------------------------------------------------------
Рекомендация
---------------------
При выполнении расчета на сервере будут использоваться общесистемные настройки того пользователя, под которым запущена Галактика, выступающая в роли сервера. Поэтому рекомендуем для всех пользователей, под которыми будут запускаться диспетчер и серверы, обеспечить идентичность общесистемных настроек настройкам расчетчика зарплаты, например путем их копирования в Администраторе настроек.
Лицензирование
---------------------
Для запуска интерфейса "Сервер распределенного расчета" требуется лицензия. За получением лицензии следует обращаться в техподдержку.