Содержание

Инструкция по развёртыванию модуля Триггеров в Windows: версия 17.Х+

Версия модуля триггеров 17.Х. работает c версией системы 3.23 и выше

Требования к ПО на сервере:

Настройка и установка системы:

Компоненты системы

Начиная с версии 17 система «модуля Триггеров» является многокомпонентной.
Каждая компонента должна разворачиваться отдельно.
Версия 17.x может корректно работать только с версиями ADVANTA 3.23 и выше.

Получение архива для распространения с исполняемыми файлами из VisualStudio (для разработчиков):

Настройка MSSQL:

Настройка PostgreSql:

Развёртывание сайта

Настройка IIS:

Установка и настройка сайта:

Описание настроек сайта:

Настройки приложения осуществляются в файле appsettings.json. Так как приложение можно запустить в различных конфигурациях, то в проекте несколько файлов типа: appsettings.ConfigurationName.json.
При получении архива для распространения с исполняемыми файлами используется файл с настройками appsettings.json.

Основной раздел:

WorkingDirectory – относительный или абсолютный путь, по которому будет размещаться рабочая папка.
Значение по умолчанию: “external” (относительный путь).

Раздел Logging:

Данный раздел настраивается в соответствии с правилами ведения журнала в .NET Core.

Подраздел File:

RootPath – абсолютный путь по которому будет размещаться папка с логами. По умолчанию полный путь до папки с приложением.

BasePath – относительный путь до папки, в которой будут создаваться файлы с логами. По умолчанию Logs. Конечный путь до папки с файлами логов будет сформирован объедине-нием путей: [RootPath]\[BasePath]

LogLevel – набор фильтров сообщений поступающих в лог. Формируется по правилам стан-дартного логирования в Asp.Net Core. Для полного отключения логов, необходимо внутри данной секции указать параметр “Default”: “None”.

Раздел Advanta:

RuntimeUser – логин и пароль пользователя, от чьего имени будут вестись запросы в API системы Advanta при исполнении триггеров (параметры Login и Password соответственно). Под этим пользователем, через API так же осуществляется запрос на извлечение данных о типах объектов.

HostURL адрес сервера для осуществления запросов в API системы Advanta.

ObjectsSyncTimeout – период синхронизации типов объектов с системой Advanta. Задаётся в минутах. Параметр необязательный. Значение по умолчанию 15 (т.е. раз в 15 минут).

ApiRequestTimeout – период ожидания ответа SOAP API системы Advanta. Задаётся в секун-дах. Параметр необязательный. Если параметр не задан или его значение равно 0, то будет использовано значение по умолчанию равное 3600 (т.е. 3600 секунд, что равно одному ча-су).

Подраздел Alerts:

Emails – список почтовых адресов, на которые необходимо рассылать уведомления о пере-запуске или сбое в работе триггеров. Список необходимо указать через любой из раздели-телей: запятая, точка с запятой, пробел.

Подраздел SmtpServer

содержит настройки smtp сервера для отправки email уведомле-ний:


Подраздел Rebus:

В данном разделе указываются параметры подключения к Базе данных системы ADVANTA к шине обмена сообщениями Rebus. Вид транспорта и строка подключения к БД ConnectionString должны быть идентичны параметрам, используемым в настройках системы ADVANTA.

    "Rebus": {
      //Варианты транспорта: "MSSQL", "PostgreSql"
      "Transport": "PostgreSql",
 
      // пример строки подключения для транспорта "MSSQL"
      //"ConnectionString": "Data Source = SqlServerName;Database=AdvantaRebus;Trusted_Connection=True;MultipleActiveResultSets=true", 
 
      // пример строки подключения для транспорта "PostgreSql"
      "ConnectionString": "User ID=username;Password=userpwd;Host=localhost;Port=5432;Database=AdvantaRebus;", 
 
      "InputQueueName": "bus_triggers_queue", // "Bus_TriggersInputQueue" - для транспорта "MSSQL"
      "SubscriptionsTableName": "bus_triggers_input_queue_subscriptions", // "Bus_TriggersInputQueue_Subscriptions" - для транспорта "MSSQL"
      "PostgreSqlMessagesTableName": "bus_triggers_messages" //используется только для транспорта "PostgreSql"
    }

Transport – тип транспорта для Rebus шины сообщений. Возможные варианты: “MSSQL” и “PostgreSql”. Если параметр не указан или пустой, то по умолчанию используется значение “MSSQL”.
Возможен так же вариант “Emulator” используется для запуска приложения без привязки к rebus.

ConnectionString – строка подключения к базе данных, через которую публикуются сооб-щения rebus.

InputQueueName – название очереди сообщений (канала), через которую будут поступать сообщения для данного instans-а. Для MSSQL по-умолчанию будет «Bus_TriggersInputQueue», для PostgreSql по-умолчанию будет “bus_triggers_queue”.

SubscriptionsTableName – название таблицы, в которую будет размещена информация о подписках. Для MSSQL по-умолчанию будет «Bus_TriggersInputQueue_Subscriptions», для PostgreSql по-умолчанию будет “ bus_triggers_input_queue_subscriptions ”(должно совпадать с настройками публикующего сервиса).

PostgreSqlMessagesTableName – название таблицы, через которую будет вестись обмен сообщениями в случае PostgreSql транспорта. Пу-умолчанию будет использоваться “bus_triggers_messages” (должно совпадать с настройками публикующего сервиса). Для MSSQL параметр игнорируется, так как для MSSQL Rebus использует (и при необходи-мости создаёт) таблицу с именем, совпадающим с названием входящей очереди сообще-ний (InputQueueName).

Раздел Database:

В этом разделе указываются настройки подключения к собственной служебной Базе данных модуля Триггеров, отдельной от БД системы ADVANTA.

  "Database": {
    //Варианты провайдеров: "MSSQL", "PostgreSql"
    "Provider": "PostgreSql",
 
    // пример строки подключения для провайдера "MSSQL"
    //"ConnectionString": "Data Source = SqlServerName;Database=AdvantaTriggers;Trusted_Connection=True;MultipleActiveResultSets=true",
 
    // пример строки подключения для провайдера "PostgreSql"
    "ConnectionString": "User ID=username;Password=userpassword;Host=localhost;Port=5432;Database=AdvataTriggers;",
    "MigrateOnStartup": "true"
  },

Provider – определяет тип СУБД, используемой для модуля триггеры. Возможные варианты: “MSSQL” и “PostgreSql”. Если параметр не указан или пустой, то по умолчанию используется значение “MSSQL”. Возможен так же вариант “Memory”. В этом варианте СУБД использоваться не будет, а все будет храниться в памяти до завершения работы приложения. Данный режим удобно ис-пользовать в процессе разработки и тестирования.

ConnectionString – строка подключения к базе данных, в которой размещаются триггеры.

MigrateOnStartup – признак автоматической миграции структуры базы данных. Принимаемые значения «true» или «false». Параметр необязательный. Значение по умолчанию “false”.
Флаг «true» может потребоваться только если есть возможность обновления и развёртывания схемы данных через миграции (например, во время разработки или создания локальной базы).
Если значение флага установлено в “true”, потребуются права на создание, изменение, удаление таблиц и индексов.

Раздел Module:

InstanceName – наименование запускаемого инстанса модуля Триггеры. Данное наимено-вание добавляется к логам и в тему email уведомлений.

Развёртывание агента

Установка и настройка:

Описание настроек агента:

Настройки приложения осуществляются в файле appsettings.json. Так как приложение мож-но запустить в различных конфигурациях, то в проекте несколько файлов типа: appsettings.ConfigurationName.json. При получении архива для распространения с исполня-емыми файлами используется файл с настройками appsettings.json.

Раздел Logging:

Данный раздел настраивается в соответствии с правилами ведения журнала в .NET Core.

Подраздел File:

RootPath – абсолютный путь по которому будет размещаться папка с логами. По умолча-нию полный путь до папки с приложением.

BasePath – относительный путь до папки, в которой будут создаваться файлы с логами. По умолчанию Logs. Конечный путь до папки с файлами логов будет сформирован объедине-нием путей: [RootPath]\[BasePath]

LogLevel – набор фильтров сообщений поступающих в лог. Формируется по правилам стан-дартного логирования в Asp.Net Core. Для полного отключения логов, необходимо внутри данной секции указать параметр “Default”: “None”.

Основной раздел:

ModulesPaths – массив относительных или абсолютных путей, по которым размещаются ра-бочие папки управляемых Engine модулей.
Данный раздел файл appsettings.json мониторится агентом динамически, поэтому пути до управляемых Engine могут быть прописаны как до старта, так и после старта агента.
При добавлении очередного пути, агент пытается определить есть ли Engine по этому пути. Если есть, то определяет стартовал ли Engine, если нет, то стартует его.
При удалении пути агент посылает соответствующему Engine модулю команду shutdown.

Запрос состояния агента:

Для получения информации по текущему состоянию агента, необходимо в папку агента положить файл “status” без расширения. Содержимое файла не читается. После того как агент обнаружит файл, он сформирует информацию о текущем состоянии движков и создаст или обновит файл output.txt. Информация о статусе так же будет записана в лог. Файл “status” будет автоматически удалён.  

Развёртывание Engine

Установка и настройка:

Описание настроек агента:

Настройки приложения осуществляются в файле appsettings.json. Так как приложение можно запустить в различных конфигурациях, то в проекте несколько файлов типа: appsettings.ConfigurationName.json.
При получении архива для распространения с исполняемыми файлами используется файл с настройками appsettings.json.

Для запуска движка необходимо использовать те же настройки appsettings.json, которые используются для запуска сайта.
Отличаться может только раздел Logging. В противном случае движок и сайт не смогут найти друг друга в процессе инициализации канала коммуникации по UDP протоколу.

Перечень использованных сторонних компонентов

Клиент:

Сервер (Движок / Engine)