Файл настроек HLOG#
В основном каталоге установки ПО IngortechSCADA находится файл с названием hlog.dat.
Этот файл предназначен для глобальной настройки работы ПО и содержит набор правил и установок, используемых любыми программами IngortechSCADA, запущенными из этого каталога.
Параметры#
Файл hlog.dat содержит набор элементов в одинаковом формате:
ИМЯ=ЗНАЧЕНИЕ
Где «ИМЯ» - название параметра файла, записанное латинскими буквами, «=» (символ равенства) разделяет имя параметра и его значения и «ЗНАЧЕНИЕ» - данные параметра.
Название параметра:
Может начинаться и заканчиваться произвольным количеством символов пробела, которые будут проигнорированы.
Может содержать как большие, так и маленькие буквы. Различия между ними в имени параметра не учитывается.
Файл может содержать неограниченное количество параметров с одним и тем же именем. При загрузке будет использован последний из них.
Данные параметра могут содержать символы пробелов после знака «=» и после окончания текста значения. Эти пробелы учитываться не будут.
Строки, в которых первым значащим символом является символ «;» (точка с запятой) считаются комментариями. Такие строки, после символа «;» могут содержать любой произвольный текст и будут полностью проигнорированы при загрузке файла.
Пример
; Различия между большими и маленькими буквами в названии нет.
rtCfgRestriction = strict
; Параметр может начинаться не с первой позиции.
; Лишние пробелы между параметром и значением будут проигнорированы.
Список поддерживаемых параметров:
FileLogMode - Устанавливает режим работы с лог файлами.
OverrideLogPath - Указывает каталог, который будет использоваться для сохранения лог файлов программ.
MaxLogLen - Устанавливает максимальный размер лог файла.
MaxLogAge - Устанавливает максимальный срок жизни лог файла в минутах.
RTCfgRestriction - Устанавливает глобальные ограничения на символы, которые разрешено использовать для имени переменной и контроллера.
SecondaryCfg - Устанавливает название каталога для поиска файлов настроек программ.
WorkoutLimit - Устанавливает максимальную дату использования ПО.
AllowUsers - Список пользователей для которых разрешен доступ.
DenyUsers - Список пользователей для которых запрещен доступ.
RTS.Temp.Path - Каталог для временных файлов.
RTS.Cache.Path - Каталог для сохранения данных загружаемых с сервера РТС.
RTS.ConfigPath.Path - Каталог для сохранения конфигурационных файлов ПО IngortechSCADA.
RTS.DataApp.Path - Каталог для сохранения временных файлов, содержимое которых будет использоваться при следующих запусках ПО.
RTS.Srv.Data.Path - Каталог данных сервера РТС.
RTS.Srv.Cfg.Path - Каталог для сохранения конфигураций сервером РТС.
RTS.Srv.AuthSource - Установки источника авторизации для сервера РТС.
Metro.Custom.Name - Установки имени файла для таблицы метрологии.
Metro.ForceData - Загрузка данных МЗ таблиц.
Allow.API.Test.App - Разрешает авторизацию клиентов, использующих тестовую учетную запись разработчика.
FileLogMode#
Предупреждение
Режим логирования влияет на все лог файлы создаваемые ПО при работе, в том числе на любые файлы для сохранения дополнительных данных и журналов, которые реализованы на основе лог файлов!
Т.е. режим сохранения влияет на сохранение: файлов журналов работы ПО, журналов доступа, журналов сохранения данных подписки и обрабатываемых переменных.
FileLogMode = <НОМЕР>
Значение по умолчанию: 1
Примечание
Режим логирования влияет на любое ПО, при работе которого используется файл настроек вне зависимости от локальных настроек самого ПО. Указать один режим логирования для одной программы и другой для другой, при использовании одного и того же файла настроек - невозможно.
Режим логирование не может быть изменен во время работы программы. При изменении настройки, для вступления ее в силу необходимо перезапустить соответствующее ПО.
Возможные значения
0 - Логирование отключено, лог файлы создаваться не будут и любая информация сохраняемая ПО в лог файлы будет игнорироваться.
1 - файл открывается один раз во время старта программы. Файл заблокирован все время работы программы. Закрытие файла осуществляется в момент завершения или при смене лог файла (при превышении размера или смены дня генерации).
Открытый в таком режиме файл во время его использования невозможно отредактировать или удалить. При наблюдении из сторонней программы, данные можно будет увидеть только после того как они будут сохранены на диск.
В случае некорректного завершения ПО (и в некоторых случаях корректного завершения) данные логически сохраненные в лог файл но не попавшие физически на диск будут полностью потеряны. Объем потерянных данных будет тем больше, чем меньший их объем сохраняется в единицу времени и чем больший объем кеша данных используется ОС.
Данные в файл сохраняются без какой-либо синхронизации. При наблюдении из сторонней программы данные будут доступны после того как они будет физически сохранены на диск, при записи в него данных они кешируются операционной системой, поэтому попадают на диск с задержкой, которая определяется механизмами операционной системы. В случае, если данных сохраняется немного может пройти длительное время от того момента когда они будут переданы из программы на запись до того момента, когда они физически будут сохранены на диске.
2 - файл открывается один раз во время старта программы. Файл заблокирован все время работы программы. Закрытие файла осуществляется в момент завершения или при смене лог файла (при превышении размера или смены дня генерации).
В случае некорректного завершения ПО (и в некоторых случаях корректного завершения) данные логически сохраненные в лог файл но не попавшие физически на диск будут полностью потеряны.Однако, в сравнении с номером 1, объем этих данных будет невелик т.к. при каждом добавлении данных выполняется команда на сохранение данных на диске. Объем потерянных данных зависит от запаздывания операции сохранения данных с момента получения команды на их сохранение и зависит от способа работы с файлами в ОС.
В отличии от режима 1, каждый раз после записи данных в лог файл ПО выполняет команду ОС для принудительного сохранения данных на диск. Эта операция позволяет сократить время между сохранение данных в лог файл до их доступности из сторонних программ за счет существенного увеличения накладных расходов по работе с ним в использующей программе.
3 - файл открывается каждый раз, когда в него необходимо записать данные и, после их сохранения, файл закрывается
В отличии от режимов 1 и 2, сохраняемые в такой файл данные становятся доступны сторонним программам в режиме реального времени. Открытые в этом режиме лог файлы могут быть удалены или изменены сторонними программами во время работы ПО. Если файла лога не будет в момент сохранения в него данных он будет создан заново.
Данные логирования всегда будут точно соответствовать данным логирования ПО даже в случае некорректного завершения ПО. Т.е. даже если сразу же после какой-то операции, при которой производилось логирование, ПО будет аварийно завершено по какой либо причине, данные логирования уже будут физически сохранены на диске.
Влияние на работу ПО
Влияние на работу ПО (замедление работы ПО) увеличивается по мере увеличения номера. Увеличение нелинейное и приблизительно соответствует следующей таблице (где за единицу принята производительность самого медленного режима 3):
Номер |
Скорость |
Влияние на ПО в сравнении с номером 3 |
|---|---|---|
3 |
самый медленный |
1 |
2 |
более быстрый |
ускорение в 2-2.5 раза |
1 |
самый быстрый |
ускорение в 10-12 раз |
0 |
Отключение логирования |
ускорение в 12-14 раз |
Из приведенной таблицы видно, что способ работы с лог файлом может оказывать принципиальное влияние на скорость работы ПО. В случае, если ПО выполняет множество небольших операций по каждой из которых сохраняет данные в лог файл, то влияние логирования может оказывать катастрофическое влияние на скорость выполнения операций в том числе приводить к ситуациям, когда время на логирование будет превышать время на выполнение полезных действий.
Так же, можно заметить что полное отключение логирования, хотя и оказывает заметное влияние на производительность ПО, его роль уже не настолько велика.
Рекомендации по настройке ПО
Режим 3 должен использоваться в ситуациях, когда необходимо точное логирование и контроль работы ПО в режиме реального времени с гарантией сохранения всех данных.
Этот режим нужно использовать только для отладки настроек и эксплуатации ПО, в том числе в режиме поиска неисправностей которые приводят к некорректной работе ПО. В случае, если необходим сбор данных в ситуациях, когда ПО может завершать аварийно, использование этого режима обязательно.
Режим 2 должен использоваться в случаях нормальной эксплуатации ПО в ситуациях, когда в момент его работы необходимо оперативно контролировать его работу (т.е. наблюдать за содержимым лог файл с использованием сторонних средств, например с помощью утилиты просмотра логов).
В этом случае будет некоторое запаздывание при отображении информации, однако режим логирования окажет минимально возможное влияние на работу ПО.
Режим 1 должен использоваться во всех случаях эксплуатации ПО в нормальном режиме, кода режим эксплуатации требует возможности получения данных о работе ПО в случае возникновения каких-либо нештатных ситуаций при условии получения такой информации значительно позже возникающего события.
Этот режим должен использоваться для любого серверного ПО, а так же для всего пользовательского ПО, наблюдение за поведением которого оперативно не осуществляется.
Отключение логирования можно использовать для высоко-нагруженных, полностью автоматизированных систем, когда разбор нештатного поведения ПО не производится никогда и ПО работает в полностью автоматическом режиме.
Примером подобного ПО может служить ПО ЧЯ, которое может эксплуатироваться полностью без участия администрирования для обеспечения максимально возможной производительности и экономии дискового пространства. Однако, все же рекомендуется, даже в ПО подобного типа использовать режим логирования 1, а контроль занимаемого лог файлами мета осуществлять с помощью механизмов автоматического или внешнего лимитирования.
OverrideLogPath#
Предупреждение
При запрете создания лог файлов с использованием символа «-», запрет действует для ВСЕХ программам использующих этот файл
hlog.dat. Если необходимо запретить создание лог файлов для отдельной программы не влияя на остальные, необходимо использовать ключи командной строки при запуске конкретной программы.Этот параметр влияет на стандартные лог файлы всех программ, а так же на файлы данных и журналов, которые основаны на формате лог файлов. В случае, если необходимо разделить место хранения данных журналов и лог файлов, необходимо использовать указание полного пути для файлов журналов в настройках соответствующего ПО.
OverrideLogPath = <КАТАЛОГ>
- Значение по умолчанию:
(пустая стройка). Лог файлы будут создаваться в том же каталоге из которого запускаются программы.
Указывает каталог, который будет использоваться для сохранения лог файлов программ.
Полный или относительный путь к каталогу, в котором необходимо создавать лог файлы.
Если указан относительный путь (имя каталога начинается не с указания буквы диска или сетевого имени), то путь будет рассчитан относительно каталога в котором расположен файл
hlog.dat.Если значение строки равно «-» (одиночному символу «минус»), то создание лог файлов будет запрещено.
MaxLogLen#
MaxLogLen = ЗНАЧЕНИЕ[k|m|g]
- Значение по умолчанию:
Ограничение по размеру не используется.
Устанавливает максимальный размер лог файла. Если после значения указаны символы «К», «М» или «G», то значение интерпретируется как число в килобайтах, мегабайтах и гигабайтах соответственно.
Если значение ключа установлено в величину 0 (ноль), то ограничение на размер лог файла не используется.
Если ограничение установлено, при достижении размера лог файла указанной величины он будет переименован в соответствии со следующим форматом:
ПУТЬ/ИМЯ.999.log
Где «ПУТЬ» и «ИМЯ» будут использованы из соответствующих частей оригинального имени лог файла, а часть «999» примет числовое значение от 0 до 999 так, чтобы получилось уникальное имя файла.
Информация
Если одновременно установлены параметры MaxLogLen и MaxLogAge, то они работают одновременно. Сработает и обработается то ограничение, которое наступит раньше.
MaxLogAge#
MaxLogAge = МИНУТЫ
- Значение по умолчанию:
Ограничение по времени не используется.
Устанавливает максимальный срок жизни лог файла в минутах.
Если значение ключа установлено в величину 0 (ноль), то ограничение на время жизни не используется.
Если ограничение установлено, то будет вычисляться разница во времени между первой добавленной в лог файл строкой и текущим временем. Если первая строка была добавлена более чем указанное количество минут назад, то лог файл будет переименован в соответствии со следующим форматом:
ПУТЬ/ИМЯ.999.log
Где «ПУТЬ» и «ИМЯ» будут использованы из соответствующих частей оригинального имени лог файла, а часть «999» примет числовое значение от 0 до 999 так, чтобы получилось уникальное имя файла.
Информация
Если одновременно установлены параметры MaxLogLen и MaxLogAge, то они работают одновременно. Сработает и обработается то ограничение, которое наступит раньше.
RTCfgRestriction#
RTCfgRestriction = strict|any
- Значение по умолчанию:
strict
Устанавливает глобальные ограничения на символы, которые разрешено использовать для имени переменной и контроллера.
В качества значения параметра может быть указан текст «strict» или «any» (без кавычек). Любое другое содержимое параметра будет неверным и параметр будет проигнорирован.
- strict:
Если установлено, то в именах переменных и контроллеров только латинские символы и символы пунктуации, такие как «
_-+,.#».- any:
Если установлено, то в именах переменных и контроллеров разрешено использовать любые символы, кроме символов запрещенных для использования в именах файлов операционной системы (запрещены символы:
:*?/).
Этот параметр используется:
Конфигуратором, при проверке конфигурации перед сохранением и отправкой.
РТС Сервером, при загрузке конфигурации с диска или приеме данных от клиентов.
В случае, если имена переменных или контроллеров будут содержать запрещенные символы, такую конфигурацию нельзя будет сохранить в файл или отправить на сервер. Сервер РТС не сможет загрузить такую конфигурацию из файла и будет отменять все попытки передать такую конфигурацию клиентами.
SecondaryCfg#
SecondaryCfg = КАТАЛОГ
- Значение по умолчанию:
. (точка) Файлы будут загружены из текущего каталога.
Устанавливает название каталога для поиска файлов настроек программ.
Файлы настроек программ будут загружены из этого каталога в первую очередь. Если файл настроек с одним и тем же именем находится и в каталоге программы и в указанном каталоге, то будет использоваться файл из указанного в параметре каталога.
Имя каталога может быть указано как в относительном, так и в абсолютном виде. Если указан относительный каталог, то его полный путь будет вычислен относительно каталога файла hlog.dat.
Значение этого параметра влияет как на загрузку, так и на сохранения файлов настроек.
Этот параметр можно использовать в том случае, если запись в каталог расположения исполняемых файлов программ невозможна. Например, запрещена политикой операционной системы.
Пример
; Устанавливает сетевой каталог для сохранения файлов настроек.
SecondaryCfg=\\192.168.12.167\rtsShare\Cfg
WorkoutLimit#
WorkoutLimit = ДАТА
- Значение по умолчанию:
(знак минус) Параметр не используется.
Устанавливает максимальную дату использования ПО. Дата должна быть указана в формате: «ДД.ММ.ГГГГ».
AllowUsers#
AllowUsers=NAME[;NAME[…]]
Список имен пользователей (логинов из конфигурации) разделенных символом «точка с запятой» для которых разрешен доступ.
Список может быть пустым или соответствовать шаблону «*», в этом случае разрешен любой пользователь
Список может содержать символы шаблонов *?: оль*а совпадет с именами ольга, ольтавина и т.д.
ВАЖНО: Если список содержит хоть один элемент, то разрешены будут пользователи ТОЛЬКО из указанного списка!
Стандартные пользователи: «Anonymous» - пользователь без указания учетной записи, «Superuser» - суперпользователь (root)
ВАЖНО: Суперпользователь (root) ВСЕГДА будет иметь имя «Superuser» вне зависимости от того как он указан в настройках сервера!
Настройка имеет БОЛЬШИЙ приоритет чем DenyUsers. Если пользователь есть в списке AllowUsers, то он будет разрешен вне зависимости от содержимого DenyUsers.
DenyUsers#
DenyUsers=NAME[;NAME[…]]
Список имен пользователей (логинов из конфигурации) разделенных символом «точка с запятой» для которых запрещен доступ.
Список может быть пустым. В этом случае РАЗРЕШЕН любой пользователь
Список может содержать символы шаблонов *?: оль*а совпадет с именами ольга, ольтавина и т.д.
Шаблон «*» запрещает вообще всех пользователей
Запрещен будет только тот пользователь, который совпадет с каким-то элементом из списка
Стандартные пользователи: «Anonymous» - пользователь без указания учетной записи, «Superuser» - суперпользователь (root)
ВАЖНО: Суперпользователь (root) ВСЕГДА будет иметь имя «Superuser» вне зависимости от того как он указан в настройках сервера!
ВАЖНО: Эта настройка может запретить использование суперпользователя, даже если его использование разрешено в настройках сервера!
Настройка имеет МЕНЬШИЙ приоритет чем AllowUsers. Если пользователь есть в списке AllowUsers, то он будет разрешен вне зависимости от содержимого DenyUsers.
RTS.Temp.Path#
RTS.Temp.Path = КАТАЛОГ
- Значение по умолчанию:
«TMP»
Устанавливает каталог, который будет использоваться для временно создаваемых файлов при работе ПО
RTS.Cache.Path#
RTS.Cache.Path = КАТАЛОГ
- Значение по умолчанию:
«Cache».
Устанавливает каталог, который будет использоваться клиентским ПО RTS для сохранения файлов, загружаемых с сервера.
RTS.ConfigPath.Path#
RTS.ConfigPath.Path = КАТАЛОГ
- Значение по умолчанию:
«.»
Устанавливает каталог, который может использоваться для сохранения файлов настроек и конфигураций всех утилит
RTS.DataApp.Path#
RTS.DataApp.Path = КАТАЛОГ
- Значение по умолчанию:
«DataApp»
Каталог для сохранения временных файлов, содержимое которых будет использоваться при следующих запусках ПО. В этом каталоге ПО сохраняет такие данные как кешированные конфигурации, большие наборы данных создаваемые при работе и используемые при следующих запусках и т.п.
RTS.Srv.Data.Path#
RTS.Srv.Data.Path = КАТАЛОГ
- Значение по умолчанию:
«Data»
Устанавливает каталог, который будет использоваться сервером для поиска данных запрашиваемых клиентами, таких как мнемосхемы, звуки и изображения
RTS.Srv.Cfg.Path#
RTS.Srv.Cfg.Path = КАТАЛОГ
- Значение по умолчанию:
«Cfg»
Устанавливает каталог, который будет использоваться сервером для работы с конфигурациями
RTS.Srv.AuthSource#
RTS.Srv.AuthSource = ТИП
- Значение по умолчанию:
«cfg»
Устанавливает тип способа авторизации, который будет использоваться на сервере.
Возможные значения:
cfg - используются данные авторизации из текущей конфигурации сервера
file://ПУТЬ_К_ФАЙЛУ - данные авторизации читаются из указанного файла
Если не установлено, или установлено в значение «-» используется тип «cfg»
Metro.Custom.Name#
Metro.Custom.Name = ИМЯ_ФАЙЛА
- Значение по умолчанию:
«RTSertificate.dat»
Если указано какое-то значение, то оно интерпретируется как имя файла библиотеки метрологии, которая будет загружена ВМЕСТО файла по умолчанию.
Metro.ForceData#
Metro.ForceData = 1/0
- Значение по умолчанию:
«0»
Если указано ненулевое значение будут загружены фактические данные библиотеки метрологии.
Allow.API.Test.App#
Allow.API.Test.App = 1|0
- Значение по умолчанию:
«0»
Если указано ненулевое значение, сервер разрешит авторизацию клиентов с использованием специальной учетной записи «APITest» для клиентов реализованных с помощью публичного АПИ доступа к серверу rtsClient.dll.
При старте, если авторизация разрешена, сервер сохранит факт разрешения в лог файле и отобразит сообщение о том что эта настройка используется.