====== Принципы ведения многониточной нормативной базы ГИД «УРАЛ-ВНИИЖТ». ====== Для ведения новой многониточной нормативной базы необходима сборка программы ГИД, собранная с этой функцией. Отличить программу ГИД с этой функцией от версии со старой нормативной базой можно по наличию пункта Главного меню ”Задачи”\”Нормативный график”. Под старой нормативной базой понимался набор из трех файлов базы ГИД: * ntrains.NN – основной файл с нормативными поездами; * ntrinfo.NN – файл календарей нормативных поездов; * dss_ntr.NN – служебный индексный файл, производный от первых двух; где NN – код дороги. Кратко о старой нормативной базе: Старая нормативная база велась одной из головных машин, у которой в файле “!program.def” в секции @База поездов ноpмативного гpафика (01.01.2005) была включена настройка 1 - эта машина - ведет базу Ноpм. гpафика (0-нет,1-да). В этой же секции располагалась настройка пути к базе нормативного графика - файлы базы ноpм. Гpафика, таким образом можно было задать иной каталог, отличный от каталога основной оперативной базы ГИД, для нормативной базы. Старая нормативная база пользовалась следующими файлами для своего заполнения: * файлы основной НСИ нормативного графика из каталога \GID\INF_NN\ NORM_PS.NN, NORM_PR.NN, NORM_GR.NN; * файлы нормативного графика пассажирских поездов из ГВЦ NORM_PS.GVC и сопутствующий ему служебный файл DATETIME.GVC, эти файлы формируются либо фтп-шлюзом нормативного графика GVC2GID.EXE, либо db2-шлюзом нормативного графика NORDB2.EXE. На текущий момент фтп-шлюз уже устарел и рекомендован к использованию db2-шлюз; * файл NPS_GVC.NN – в этом файле содержится тот максимум ниток из файла NORM_PS.GVC, которые ГИД может загрузить в старую нормативную базу. Этот файл формируется автоматически и не подлежит ручной корректировке, так же он попадает в суточный архив ГИД и использовался просмотрщиком архива при распаковке для создания актуальной нормативной базы для архива. Новая нормативная база: Вся новая нормативная база помещается в одном файле NORBASE.NN, поэтому при установке новой версии ГИД, ведущей новую нормативную базу, всегда можно будет откатиться к старой версии ГИД, которая вела старую нормативную базу, так как их файлы базы не пересекаются. Отсюда же следует, что установив новую версию головной машины не обязательно сразу же переустанавливать рабочие места клиентов, т.к. они пока могут работать старой программой, которая будет пользоваться старыми файлами нормативной базы. Ведение же остальных файлов базы между этими версиями не отличается. Секция в файле “!program.def”, отвечающая за ведение нормативной базы не меняется в новой версии, настройки остаются те же. Файлы НСИ, которыми может пользоваться новая нормативная база: * те же файлы основной НСИ NORM_PS.NN, NORM_PR.NN, NORM_GR.NN; * те же файлы графика ГВЦ. * НЕ СОЗДАЕТСЯ файл NPS_GVC, т.к. он не нужен, поскольку загружаются все нужные по полигону нитки, никаких выборок одной нитки из нескольких не производится. * дополнительно могут обрабатываться три новых файла в каталоге \GID\INF_NN\ NORVARPS.NN, NORVARPR.NN, NORVARGR.NN – это файлы вариантного графика. Все эти файлы являются факультативными, если их нет - то нет, программа загрузится без них и база нормативного графика будет пустая. В процессе работы головная раз в минуту проверяет, не появились ли эти файлы в своих каталогах, и если появились или у них изменилась дата файла, то данные их этих файлов будут загружены в базу. Источник ниток. Поскольку в новой схеме у нас появляются разные нитки одного поезда из разных источников, то возникла необходимость ввести понятие источника нитки. Есть 3 типа источника ниток: - "НСИ ГИД" – это нитки, груженные из файлов \GID\INF_NN\ NORM_PS.NN, NORM_PR.NN, NORM_GR.NN; - “ГВЦ” – эти нитки загружены из файла NORN_PS.GVC, т.е. эти нитки получены от шлюза нормативного графика ГВЦ; - “ВАР” – это нитки вариантных графиков, загруженные в базу из файлов NORVARPS.NN, NORVARPR.NN, NORVARGR.NN. В результате после первой загрузки новой нормативной базы у нас любой поезд может иметь несколько ниток из разных источников. Возникает вопрос выбора конкретной нитки при подборе к исполненному расписанию или при рисовании нитки на графике на конкретные сутки. Если у каждой нитки свой календарь на каждый день и эти календари не пересекаются, то нитка подбирается по календарю, если же несколько ниток у одного поезда действуют по календарю в один и тот же день, то для выбора используется система приоритета. По умолчанию приоритет следующий (по убыванию приоритета): “ВАР” > “ГВЦ” > “НСИ”. Существует настройка позволяющая менять приоритет: Главное меню \Функции\Настройки\Норм. график\. Принципиальное различие между файлами «НСИ ГИД» и файлами «ГВЦ» и «ВАР» это то, что в файлы НСИ имеют старый формат, а файлы ГВЦ и ВАР имеют свой формат, назовем его NTP, в старом формате не было календаря, в формате NTP есть календарь на каждый поезд. Отсюда следует, что в нитках НСИ нет календарей на поезда, т.е. как и раньше из этих файлов загружаются нитки, а календарь на них может вестись вручную в редакторе календаря в ГИДе (Главное меню ”Задачи”\”Нормативный график”). Календарь на «ГВЦ» и «ВАР» нитки не правится. При первой установке версии программы ГИД с новой нормативной базой необходимо вначале обновить ехе-файл и загрузить головную, которая вела старую нормативную базу. Она создаст новый файл базы. После этого уже можно загружать клиентов. При первой загрузке новой нормативной базы будет произведена загрузка всех имеющихся исходных файлов. Процедура может длиться около минуты. В случае если в старой нормативной базе велся календарь, то при первой после первой загрузке новой нормативной базы старый календарь будет автоматически импортирован в новую базу. Календарь будет импортироваться только для ниток с источником «НСИ», остальные нитки в базе не будут затронуты. Если у нас пассажирские поезда берутся из графика ГВЦ, то файл NORM_PS.NN с нормативными пассажирскими поездами не нужен, т.к. все пассажирские поезда будут подбираться из «ГВЦ» ниток. Однако его можно оставить, тогда он будет исполнять роль страховки на случай сбоя, когда не поступают по каким-либо причинам данные из ГВЦ. Файлы «ВАР» формируются программой GDP2GID.EXE. У всех ниток в этом файле – одинаковые календари, на один день, т.к. вариантный график формируется на один день. При загрузке нового файла вариантного графика, производится проверка ранее загруженных ниток «ВАР» и нитки, действовавшие более 7 дней назад, удалятся из базы. Нитки «ВАР» подгружаются к существующим ниткам «ВАР». Нормативные файлы в каталоге \GID\INF_NN\ загружаются, если программа обнаружила, что время модификации файла отличается от ранее загруженного времени. Файл графика ГВЦ загружается, когда программа обнаруживает изменение строки времени в файле DATETIME.GVC. Системные даты файлов в данном случае роли не играют. При загрузке графика ГВЦ программа удаляет ранее загруженные нитки «ГВЦ», т.к. в файле NORM_PS.GVC содержатся все необходимые нитки от текущих суток и на несколько дней назад (на сколько дней – задается настройкой на шлюзе). При загрузке файлов «НСИ» программа удаляет ранее загруженные нитки от источника «НСИ», соответствующего типа – пасс., приг. или груз. Ранее введенный календарь при этом не теряется. Если «НСИ» файл был загружен, а потом исчез, то это не приводит ни каким действиям, т.е. факт исчезновения файла не означает, что нужно удалить все нитки «НСИ» данного типа. Для того чтобы удалить все нитки «НСИ» требуемого типа, нужно поместить в каталог \GID\INF_NN\ соответствующий пустой файл не нулевого размера. В файлах «НСИ» теперь можно будет более одной нитки с одним номером и одинаковым маршрутом, существовавшее ранее ограничение снято. Можно ввести, например, одну нитку с одним расписанием и вторую такую же с другим. Они загрузятся как две нитки с источником «НСИ» одного поезда и редакторе им можно проставить разные календари, например, одна по будням, другая по выходным. Для настройки различных параметров, определяющих работу с нормативной базой, существует настроечный файл, который располагается в том же каталоге, что и исполняемый файл ГИД. Файл имеет название !normgraf.cfg. Файл автоматически не создается, поэтому если этого файла нет, то настройки, определяющие работу с нормативной базой, имеют значения «по умолчанию». Для создания этого файла можно из главного окна нормативной базы (Главное меню ”Задачи”\”Нормативный график”) выполнить пункт Главного меню “\Норм. база \ Управление базой” в открывшемся окне Меню “Функции \ Создать файл настроек”. Для машины, ведущей нормативную базу в системе ГИД «Урал-ВНИИЖТ», реализована возможность формировать сообщения, в которых передается информация о нормативных расписаниях поездов, находящихся в базе данной машины. Такие сообщения имеют префикс – располагаемый в начале каждого сообщения вида «(0002:» и могут содержать информацию только для определенных категорий поездов. Возможно задать формирование таких сообщения для нормативных расписаний поездов следующих категорий: * Пассажирских * Пригородных * Грузовых * Только полученных из таблиц DB2 ИВЦ (на основе эталонных расписаний ГВЦ ОАО “РЖД») Такие сообщения можно использовать для обновления сведений о нормативных расписаниях в удаленных АРМ-ах системы ГИД «Урал-ВНИИЖТ», в том числе и в ГВЦ –(например о нормативных расписаниях грузовых поездов), и на станциях. Средний размер сообщений 60-180КБ. Категории поездов, сведения о нормативных расписаниях которых будут включаться в эти сообщения, определяются настройками в файле !normgraf.cfg, сведения о котором приводятся выше. При задании настройкой необходимости формирования ниток, загруженных из таблиц DB2, сообщения будут формироваться при очередной загрузке нормативного графика из указанных таблиц. Если настройками задается формирование сообщений для Пригородных/Пассажирских/Грузовых, то они будут формироваться раз в сутки в определенное время согласно настройке в файле !normgraf.cfg. Перед использованием данной возможности необходимо провести анализ пропускной способности каналов передачи данных через ТКИ, чтобы не перегрузить их попытками передать эти сообщения. Головная машина ГИД, обрабатывающая входные сообщения 0002 проводит полную форматную и логическую проверку входящих пакетов, данные их этих пакетов запишутся в базу, только если проверка была пройдена, иначе данные не обработаются и состояние базы останется предыдущее. Точно также любая непредвиденная ошибка приведет к тому что входящий пакет забракуется и данные в базе останутся в предыдущем состоянии. Корректировки нормативной базы на клиентском месте отображаются максимум через две минуты, т.к. обновление служебных индексных таблиц на клиентах происходит не чаще чем раз в две минуты, естественно, если происходит на головной какая-нибудь корректировка. Если изменений нормативной базы нет, то на клиентах никакого обновления не происходит.