17.03.2016 10:03
mighty
 
Привет всем. Давно здесь не был, ЕГАИС наступает. Работаем с ЕГАИС собственным софтом. Есть проблемы с УТМ, переносы, поломки и т.д. приводят к тому что адиминами либо IP адреса его меняются, либо порты, либо сам УТМ начинает выкладывать новые документы в старые каталоги, затирая что там уже было. Вообщем назрела мысль написать бекапер, который будет создавать зеркало УТМ в Оракле и с этим зеркалом уже работать напрямую.

Бекапер работает в двух режимах.
1) /Backup=1 - соеденяется с указанным УТМ и создает его зеркало в таблице оракла.
1) /Backup=0 - выкладывает из оракла нужный XML файл.
Коннектится в базу под под пользователем MAXIMIZATOR.

Сначала надо один раз запустить скрипт создания схемы MAXIMIZATOR запускать из под SYSTEM(скрипт в архиве) он создает пользователя и таблицу бекапа MAXIMIZATOR.MAXVEGAIS_UTM.

Поля таблицы:
FSRARID is 'ФС РАР ID';
UTM_ADDR is 'IP:порт УТМ';
DIRECTION is 'Направление 1-IN/0-OUT ';
GUID is 'Идентификатор запроса ЕГАИС';
PATH is 'Полный путь к XML сообщению';
FILENAME is 'Полный путь к XML файлу';
CRC is 'Контрольная сумма XML файла';
PACK_TYPE is 'Тип сообщения';
PACK_DATE is 'Дата получения сообщения';
XMLFILE is 'Содержимое сообщения в XML формате';
USERIP is 'IP адрес компьютера с которого был запрос к УТМ';
FLAG is 'Флаг реакции на сообщение 0 - сообщение уже вчитано в БД, 1-Новое сообщение, необработанное.';


Потом используйте бекапер по собственному усмотрению. Запуск без параметров - справка по опциям.

UTMBackup.exe <параметры>
ПАРМЕТРЫ:
/BACKUP=<1-РежимБекапа(по умолчанию),0-РежимВыгрузкиXMLфайла>
/FSRARID=<КодФСРАР>
/CURRPATH=<ПутьXMLФайлаВБекапе>
/NEWPATH=<НовыйПутьXMLФайла>
/CLEARUTM=<1-УдалятьЗабекапленныйПутьИзУТМ, 0-по умолчанию>
/CURL=<Curl.exe с полным путем>
/DB=<SID>
/UTM=<IP:порт>
/XMLPATH=<ПутьНовыхВходящих>
/LOGFILE=<Лог-файл с полным путем>


Для режима /BACKUP=1 (по умолчанию) необходимы параметры: /FSRARID /DB /CLEARUTM /CURL /UTM /XMLPATH /LOGFILE
остальные параметры игнорируются

Для режима /BACKUP=0 необходимы параметры: /FSRARID /DB /CURRPATH /NEWPATH
остальные параметры игнорируются

Порядок параметров не важен

Пример:

Для бекапа

UTMBackup.exe /FSRARID=90134091248 /CURL=D:\maximizator\dll\curl.exe /DB=VLIG3761 /UTM=10.37.65.200:8080 /XMLPATH=D:\XML /LOGFILE=D:\XML\utmbackup.log


Для того чтобы вытащить файл из бекапа надо знать его путь в поле FILENAME (передаем его в параметре /CURRPATH) и FSRARID.


UTMBackup.exe /BACKUP=0 /FSRARID=90134091248 /DB=VLIG3761 /CURRPATH =G:\projects\supermag\utmbacup\XML\in201603161915_10.xml /NEWPATH =G:\projects\supermag\сюдахочу.xml


Удачи.
Вложения
Тип файла: zip UTMBackup.zip (344.3 Кб, 115 просмотров)
17.03.2016 10:42
OlegON
 
Привет. Вот большая просьба
Цитата:
grant dba to MAXIMIZATOR;
убрать... Неправильно это очень...
17.03.2016 11:41
mighty
 
Привет, Олеж, убери пожалуйста сам прямо в архиве? я не против ))) Просто отредактировать мне никак, а новую версию скрипта выкладывать это будет смешно ))
И да. Забыл дописать кое-что:
1)
/CLEARUTM=<1-УдалятьЗабекапленныйПутьИзУТМ, 0-по умолчанию>
Работает так, если в параметрах есть /CLEARUTM=1,то бекапер после того, как заливает XML файл в оракл, посылает команду на удаление этого пути с УТМ "-X DELETE path", таким образом УТМ будет всегда девственно чистым. Если не очищать УТМ то записи каждый раз будут пытаться грузиться в оракл, но натыкаться на уникальный ключ и задвоений не произойдет.
2)
У вновь прибывших записей УТМ поле FLAG=1, обнулением занимается софт который обрабатывает потом эти записи, то есть парсит и грузит уже в таблицы.
3) Бекапер соеденяется с УТМ, выкачивает все файлы к себе в каталог /XMLPATH= затем заливает их в таблицу оракла, удаляя те файлы по которым сработал уникальный ключ и файлы которых я так и не смог получить курлой из УТМ (opt/in). Вновь появившиеся файлы в УТМ (opt/out) после загрузки в оракл, не удаляются из каталога /XMLPATH=, поэтому в принципе можно не использовать вторую возможность бекапера(выгрузка XML файла из оракла), а подбирать новые XML файлы прямо из каталога /XMLPATH= после работы бекапера.
17.03.2016 11:43
OlegON
 
А оно работать-то будет?
17.03.2016 11:58
mighty
 
Цитата:
OlegON А оно работать-то будет?
Без DBA? Думаю будет))) В бекапере никаких дополнительных обращений нет - только к одной таблице.
Просто у меня maximizator - это очень мощный функционал, сравнимый с СМ, поэтому у него DBA - он работает и схемах SYS и в схемах SUPERMAG.
17.03.2016 12:05
OlegON
 
Менять не буду, кому надо - пусть сам, в общем, моей рекомендацией будет это убрать и на будущее не раздавать общими грантами, а сделать красиво - грантовать нужное.
Часовой пояс GMT +3, время: 10:32.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.