Настройка служб асинхронной загрузки в филиале

Параметры настроек служб в филиале

Настройки следующих параметров влияют на выгрузку в транспортную очередь в филиале (подробное описание параметров «settings.json» приведено в документе «Инструкция по установке модулей платформы LDM под операционную систему Astra Linux и РЕД ОС»):

  • «settings.json»:
    • MQ_CONNECTION_WINDOW_SIZE_BYTES – размер «окна» данных. Максимальный размер части файла, который может быть передан без подтверждения доставки.
      • MQ_MAX_RETRY_COUNT – максимальное количество попыток передать сообщение в очередь в случае ошибки передачи.
      • MQ_RETRY_WAITING_INTERVAL_SEC – интервал времени между попытками передать сообщение в очередь в случае ошибки передачи.
      • MQ_COMPLETION_WAITING_INTERVAL_MS – интервал времени между проверками подтверждения доставки.
      • MQ_NUMBER_OF_COMPLETION_WAITING_INTERVALS – максимальное количество проверок подтверждения доставки.
      • WATCHDOG_TIMER_ENABLED – включение таймера, должен быть включен.
      • WATCHDOG_TIMER_ONESHOT_MODE – режим единичного срабатывания таймера, должен иметь значение «false».
      • WATCHDOG_TIMER_SYNC_PERIOD_SEC – период запуска синхронизации таймером.
  • Справочник Удаленные филиалы (кэшируется в «ibmmq.xml»):
    • MessageSize – размер в байтах прикладной части сообщения IBM MQ (размер чанка файла, который передается в одном сообщении).

Процесс выгрузки

Выгрузка файла осуществляется следующим образом:

  • Агент асинхронной загрузки периодически синхронизирует информацию о файлах (статус и прогресс доставки) с сервисом асинхронной загрузки (ИА). Период запуска синхронизации определяется настройкой WATCHDOG_TIMER_SYNC_PERIOD_SEC в «settings.json» (подробное описание параметров в файле «settings.json» приведено в документе «Инструкция по установке модулей платформы LDM под операционную систему Astra Linux и РЕД ОС»).
  • Когда статус файла становится В очереди, файл попадает в очередь обработки агента.
  • Из очереди одновременно берется до 4 файлов для параллельной обработки (регулируется параметром MQ_MAX_FILE_BATCH в файле «settings.json» – подробное описание параметров «settings.json» приведено в документе «Инструкция по установке модулей платформы LDM под операционную систему Astra Linux и РЕД ОС»).

Алгоритм выгрузки:

  1. Последовательно вычитываются чанки файла, помещаются в сообщения и отправляются в очередь. Размер чанка определяется настройкой MessageSize в справочнике Удаленные филиалы.
  2. Если не удается отправить сообщение или подключиться к IBM MQ, то попытки повторяются. Количество повторов и интервал между ними определяются настройками MQ_MAX_RETRY_COUNT и MQ_RETRY_WAITING_INTERVAL_SEC в файле «settings.json» (подробное описание параметров «settings.json» приведено в документе «Инструкция по установке модулей платформы LDM под операционную систему Astra Linux и РЕД ОС»). Если количество повторов превышено, то файл переводится в статус ошибки.
  3. Отправка чанков происходит до тех пор, пока суммарный размер неподтвержденных чанков не достигнет размера окна. Размер окна указан в настройке MQ_CONNECTION_WINDOW_SIZE_BYTES в файле «settings.json» (подробное описание параметров «settings.json» приведено в документе «Инструкция по установке модулей платформы LDM под операционную систему Astra Linux и РЕД ОС»).
  4. Если достигнут предел окна, ожидается подтверждение доставки всех отправленных чанков, чтобы иметь возможность отправить новые чанки. Количество проверок подтверждений и интервал между ними определяется настройками MQ_NUMBER_OF_COMPLETION_WAITING_INTERVALS и MQ_COMPLETION_WAITING_INTERVAL_MS в файле «settings.json» (подробное описание параметров «settings.json» приведено в документе «Инструкция по установке модулей платформы LDM под операционную систему Astra Linux и РЕД ОС»). Если подтверждение не было получено, то файл переводится в статус ошибки.
  5. Когда подтверждение доставки получено, то загрузка продолжается.
  6. Когда достигнут конец файла, агент асинхронной загрузки ожидает итогового подтверждения доставки всего файла от сервиса (ИА) – через механизм синхронизации информации о файлах должна быть получена информация, что статус изменился на Завершен.

Журналирование событий

Журналирование событий агента асинхронной загрузки не производится.

Новый режим доставки

Новый режим доставки меньше загружает очередь и предназначен для удаленных филиалов с узкими каналами связи с головным офисом.

Когда достигнут предел окна ожидается доставка не части отправленных чанков, а доставка всех чанков, которые были отправлены, т. е. ожидается доставка всего отправленного окна. Поэтому плотность отправки сообщений в очередь будет меньше в этом режиме.

В новом режиме ожидание подтверждения доставки сделано более «мягким». Сервис так же, как и в исходном алгоритме, совершает несколько попыток проверки прогресса доставки. Количество попыток и интервал между ними определяется настройками MQ_NUMBER_OF_COMPLETION_WAITING_INTERVALS и MQ_COMPLETION_WAITING_INTERVAL_MS в файле «settings.json» (подробное описание параметров «settings.json» приведено в документе «Инструкция по установке модулей платформы LDM под операционную систему Astra Linux и РЕД ОС»), но если окно было доставлено не полностью, то счетчик попыток сбрасывается, т. к. доставка движется, просто медленно. Если же попытки проверок закончились и при этом прогресс не движется, то агент повторно загрузит те чанки окна, которые не были подтверждены, после чего снова будет ожидать подтверждения доставки. Максимальное количество таких повторов доставки окна определяется в настройке MQ_MAX_WINDOW_RETRIES_COUNT в файле «settings.json» (подробное описание параметров «settings.json» приведено в документе «Инструкция по установке модулей платформы LDM под операционную систему Astra Linux и РЕД ОС»).