![]()
Главная Обратная связь Дисциплины:
Архитектура (936) ![]()
|
Описание и состав подсистемы обмена изменениями
Подсистема обмена изменениями состоит из двух частей: клиентской части и службы автообмена. Программные модули клиентской части содержат в себе программу с графическим интерфейсом пользователя. Эта программа использует для работы развитый графический интерфейс и подробное информирование пользователя о состоянии работы. В ее функции входит: · Функции выгрузки/загрузки, запускаемые непосредственно пользователем; · Функции контроля и управления службой автообмена (см. ниже). Концепция регистрации изменений подсистемы обмена изменениями Регистрация изменений фиксируется при помощи триггеров. Регистрация изменений реализована по принципу журнала. В базе данных создается специальная таблица регистрации происходящих изменений (EXP_LOG – журнальная таблица). Каждое изменение в базе данных записывается в эту таблицу и помечается идентификатором журнальной записи (ID), который при каждой записи увеличивается, для идентификатора используется последовательность Oracle – exp_log. При выгрузке изменений из журнала выбираются все записи с идентификатором большим, чем последний выгруженный идентификатор, записанный в журнал выгрузок (EXP_JOURNAL). При этом, если во время сохранения информации об изменении в журнале, уже будет найдена запись о том, что такая запись таблицы уже изменялась ранее, то новая запись в журнал добавляться не будет, а будет поставлен новый идентификатор (ID) на старую запись об изменении – это позволит виртуально "передвинуть" журнальную запись в конец журнала. И при следующей выгрузке она будет выбрана в результате выполнения запроса. Такой подход позволяет держать журнал в оптимальном объеме и увеличить быстродействие операции по регистрации изменения. Экспорт данных Экспорт данных из БД представляет собой выгрузку (либо всех данных, содержащихся в базе, либо изменений, совершенных в базе данных) в файлы (для каждого из подразделений – получателей) определенного формата с целью последующей загрузки этих данных из файлов в принимающие базы данных (БД – корреспонденты, или получатели выгрузки). Процедура записи данных в файл называется выгрузкой, а файл – файлом выгрузки. Файл выгрузки передается получателям по сетям передачи данных (при этом один файл выгрузки обычно предназначен для нескольких получателей). При загрузке присланного файла в базу данных получателя программным комплексом, установленным у получателя, производится генерация файла подтверждения (verify-файл) данной выгрузки и отправляется обратно – на БД отправителя. Причем файл подтверждения формируется, только если при загрузке не было ошибок. При загрузке файла подтверждения на БД отправителя выгрузка данных считается подтвержденной. Экспорт может быть осуществлен двумя способами: · С помощью клиентской версии программы (см. раздел 15.2.4.1); · С помощью службы автообмена (см. ниже). В обоих случаях файл выгрузки создается одного и того же формата, пригодного для загрузки в любой из программ. Выгрузка бывает двух типов: полная (когда выгружаются все данные всех таблиц) и выгрузка изменений (когда выгружаются только измененные с момента последней выгрузки данные). Ниже представлены основные положения, согласно которым осуществляется выгрузка (экспорт) данных из БД – отправителя выгрузки: · Выгрузка данных производится напрямую программой в файлы для представительств получателей. Каждый из файлов представляет собой файл своего, внутреннего формата программы, и содержит заголовок и таблицы данных; · Принцип заполнения и обработки файла следующий – все данные, которые присутствуют в таблицах файла (кроме таблицы EXP_LOG – журнала), считаются новыми версиями данных и соответственно обрабатываются. Таблица EXP_LOG обрабатывается особым образом, обеспечивая исключение удаленных записей у получателя и копирование журнала при выгрузке в отдел; · Экспорт может быть полным и экспортом изменений, при полном экспорте журнал EXP_LOG вообще не используется, экспортируются данные в таблицы файла, и при обработке все записи считаются новыми; · Экспорт формируется для нескольких получателей одновременно по следующему правилу – получателями выгрузки по умолчанию являются: - подразделения, которые "выше" текущего по орг.структуре (ССД для отдела или отдел для сектора); - ВСЕ подразделения "ниже" текущего по иерархии (сектора для отдела, или все отделы и все сектора для ССД); Такая схема обеспечивает максимальное быстродействие, выгрузка одних данных производится только один раз; · Информация о списке получателей файла записывается в специальную таблицу (EXP_JOURNAL_RECIPIENTS). При загрузке файла выгрузки получателями те присылают обратно свои verify-файлы, и при загрузке verify-файлов ставится отметка в EXP_JOURNAL_RECIPIENTS. Когда все получатели пришлют verify-файлы, выгрузка считается подтвержденной, и ставится признак подтверждение в самом журнале выгрузки; · Есть возможность автоматического сжатия файла при окончании экспорта в формате ZIP. · При экспорте обеспечивается работа других пользователей системы – процедура выгрузки не оказывает влияния на работу других пользователей. · При выгрузке происходит информирование пользователя о статусе выполнения операции. Выполнение экспорта данных Для инициализации процедуры экспорта данных необходимо запустить соответствующую программу, для этого в окне программы-оболочки ПК ИС ЕГРПнужнонажать кнопку Универсальная оболочка ( После этого на экране появится основное окно программы (см.Рис. 183). Рис. 183 Окно Универсальная оболочка Первоначально необходимо осуществить подключение к соответствующей БД. Для этого в меню программы выбрать Действия > Новое соединение(см.Рис. 183) или нажать на кнопку Рис. 184 Окно параметров установки соединения с БД После корректного подключения к БД на экране появится окно (см.Рис. 185). В левом поле необходимо выбрать элемент Обмен изменениями > Экспорт данных. Рис. 185 Окно Консоли управления Описание параметров данного окна для выгрузки данных из БД в файл см.в Табл. 9. Табл. 9 Параметры экспорта
Дополнительные параметры(открываются при нажатии на одноименную кнопку см. Рис. 185), содержат в основном необходимые для отладки настройки. Кроме того, для особых случаев, в окне дополнительных параметров, можно задать временной интервал (период) выгрузки данных. Данные параметры не рекомендуется изменять в процессе обычной работы. После введения всех необходимых параметров выгрузки нажать на кнопку Экспорт для начала процесса выгрузки (см.Рис. 185). При этом программа проверит правильность введенных параметров, а также произведет проверку на то, что предыдущие выгрузки были завершены успешно. В случае если есть хоть одна неподтвержденная выгрузка – об этом будет выведено на экран сообщение, и процесс экспорта будет остановлен. Однако если указан режим тестовой выгрузки, то такая проверка перед началом работы производиться не будет. При работе процедуры экспорта выводится окно отображения статуса выгрузки (см.Рис. 186). В данном окне отображается процесс выполнения работы, выводятся различные сообщения о работе. После окончания работы будут сформированы файлы, содержащие данные экспорта, и выведено соответствующее сообщение. Рис. 186 Окно состояния экспорта Импорт данных Импорт данных из файла в базу данных представляет собой загрузку изменений, содержащихся внутри файла, в базу данных. Импорт выполняется на базе данных – приемнике файла данных egp, и совмещается с функцией обнаружения логических ошибок при добавлении/изменении/удалении данных. В файле содержатся заголовок и таблицы данных. Данные в таблицах считаются новыми по отношению к данным в базе данных и загружаются следующим образом. Если в БД есть запись с таким же идентификатором, что и в присланном файле, то эта запись обновляется значениями из файла, если же такой записи нет, то она добавляется в базу данных. Отдельно производится удаление удаленных записей, процедура просматривает присланный журнал (EXP_LOG), и для тех записей, которые в БД отправителя были удалены, выполняет операцию удаления. Импорт может быть осуществлен двумя способами: · С помощью клиентской части программы обмена данными; · С помощью службы автообмена (см. ниже). В обоих случаях процедура импорта идентична, действия выполняются одни и те же. Загружаться могут следующие типы файлов: · Файлы данных (egp) - это файлы, содержащие данные полной выгрузки или выгрузки изменений; · Файлы подтверждений (verify-файлы, расширение vrf). При загрузке файлов данного типа устанавливается подтверждение на выгрузку; · Файлы, содержащие данные, которые не были загружены при обработке файла из-за ошибок, возникающих при выполнении операции по изменению данных (err-файлы, расширение egp). Использование данных файлов подразумевает следующее: если исправить причины, приведшие к ошибке, и заново обработать ERR файл, причем в данном случае ошибок уже не будет, то в результате произойдет формирование подтверждения. ERR файлы имеют такой же формат, как и основные файлы данных, только содержат именно те данные, которые не смогли быть загружены; · Сжатые файлы данных в формате ZIP. При обработке данных, сжатых с использованием ZIP, программа автоматически распаковывает данные, содержащиеся в архиве. Ниже представлены основные положения, согласно которым осуществляется загрузка (импорт) данных: · Загрузка производится напрямую из файла в БД. Перед загрузкой программа проверяет, является ли текущее представительство получателем данного файла (список получателей хранится в заголовке файла, и вы можете посмотреть его клиентской частью системы обмена (Подключить - Просмотр файла данных обмена)). Загрузка производится по следующему алгоритму: 1. Проверка того, что файл выгрузки предназначен для текущего представительства; 2. Проверка того, что данный файл уже загружался; 3. Если делается импорт полной выгрузки, с режимом отключения индексов, индексы переводятся в состояние UNUSABLE, это делается для ускорения загрузки; 4. Получение списка таблиц в файле из заголовка файла; 5. Получение списка возвращенных изменений. Например, в случае, если передаются данные из отдела в сектор, то эта выгрузка может содержать данные, переданные сектором ранее, и, если обрабатывать все, то запись будет загружена повторно. Однако эта запись может быть еще раз изменена или удалена в секторе, и в результате она вернется в предыдущее свое состояние, что недопустимо; 6. Сортировка списка таблиц в зависимости от взаимных связей в БД (foreign constraints). Наверх списка перемещаются родительские таблицы, вниз – подчиненные. Это позволяет выявить порядок обхода таблиц при загрузке. Внимание! во время работы ни одно из ограничений не отключается, что позволяет выявлять ошибки сразу же при их возникновении, и соответственно информировать детально пользователя о возникающих ошибках. В дальнейшем таблицы обрабатываются в соответствии с полученным списком; 7. Обновляется тело триггеров таблиц, участвующих в обработке. В тело триггеров добавляется возможность отключения триггера, посредством установки флага EXCH2.IS_IMPORTING (подробней см. ниже); 8. Устанавливается флаг EXCH2.IS_IMPORTING для отключения всей функциональности триггеров в данном сеансе. Для остальных пользователей функциональность не отключается, и они могут работать одновременно с загрузкой изменений. 9. Просматривается таблица EXP_LOG в файле, и, если в ней содержатся информация об удалении записей, то согласно отсортированному списку, в обратной последовательности, т.е. с конца списка, производятся удаления в каждой из таблиц с помощью команды DELETE; 10. По каждой из таблиц в отсортированном списке, начинается вставка новых или обновление имеющихся записей. Запись считается новой всегда, не зависимо от того, добавлена она или изменена. Обработка производится по следующему алгоритму: пытаемся обновить, если не найдено записей для обновления, то вставляем запись. При выполнении этого кода используется технология передачи параметров в запрос Oracle Array Binding, что позволяет значительно ускорить процесс. 11. Копируется журнал (если есть, из EXP_LOG). Это делается для того, чтобы потом можно было выгрузить изменения в другие представительства как измененные данные. Однако журнал копируется только при загрузке из представительств нижнего уровня. Причем копируются в представление V_EXP_LOG_INS, для того, чтобы вставить изменения в конец списка изменений; 12. Отрабатываются действия по арестам, согласно алгоритмам пакета EXCH; 13. Формируется запись в EXP_IMPORTS (журнал загрузок); 14. Формируется VERIFY-файл (файл подтверждения); 15. Делается COMMIT (подтверждение) транзакции; 16. Если включен режим отключения индексов полной выгрузки, то индексы включается обратно; 17. Если во время импорта были ошибки, автоматически формируется файл, содержащий данные только по ошибкам (err_*.egp), формат данного файла такой же как формат обычного файла. Это позволяет затем произвести загрузку только тех данных, которые вызвали ошибки. Более подробно о методах исправления ошибок при загрузке данных см.п.15.2.6; · Импорт производится только в рамках одной транзакции. При импорте другие пользователи не увидят изменений, пока полностью не будет подтверждена загрузка. Реализована одновременная работа пользователей ПК ИС ЕГРП и процесса импорта данных; · Для полной выгрузки используется режим временного отключения индексов (настоятельно рекомендуется его использовать, так как это позволяет значительно увеличить скорость импорта); · Доступен режим импорта данных в чистую схему данных пользователя (при этом создается пользователь, формируются схемы таблиц, и копируются данные). Данный режим может быть полезен при отладке и для просмотра данных, содержащихся в файле; · При импорте данных оператору наглядно демонстрируется процесс импорта, а также все диагностические сообщения, возникающие при этом. В любой момент процесс может быть прерван; · При загрузке verify-файлов импорт выполняется очень быстро, так как просто ставится отметка о получении и загрузке данных на удаленной стороне. Выполнение импорта данных На стороне клиента, импортирующего данные, запустите программу импорта данных, для этого в окне программы-оболочки ПК ИС ЕГРПнужнонажать кнопку Универсальная оболочка ( В результате на экране появится основное окно программы (см.Рис. 187). Рис. 187 Окно Универсальная оболочка Выполните команду меню Действия > Новое соединение(см.Рис. 187) или нажмите на кнопку Далее в появившемся окне необходимо ввести соответствующие параметры для установления соединения с базой данных (см.Рис. 184). Краткое описание данных параметров приведено в п. 15.2.4.1 В левом поле просмотра выберите пункт Обмен изменениями – Импорт данных. Откроется окно ввода параметров процедуры импорта (см.Рис. 188). Рис. 188 Окно ввода параметров импорта Описание параметров этого окна представлено в Табл. 10. Табл. 10 Параметры импорта
Дополнительные настройки, которые можно открыть, при нажатии на кнопку Дополнительные параметры, содержат в основном необходимые для отладки параметры. Не рекомендуется их изменять в процессе обычной работы. После введения необходимых параметров загрузки нажмите на кнопку Импорт (см.Рис. 188) для начала процесса загрузки. При этом программа проверит правильность введенных параметров и доступность файла. При положительном результате проверки загрузка начинается. Программа автоматически определяет тип файла и выполняет соответствующую обработку по следующему алгоритму: · Если файл представляет собой сжатый файл ZIP, то он распаковывается; · Если загружается verify-файл, то ставится подтверждение выгрузки, информация о которой содержится в файле; · Если загружается файл данных (обычный, или ERR-файл), то производится стандартная обработка данных по алгоритму, представленному выше. При работе процедуры импорта выводится окно отображения статуса выгрузки (см. Рис. 189). В данном окне отображается информация о стадиях процесса, выводятся различные сообщения о работе процедуры. Рис. 189 Окно состояния импорта Проанализируйте результаты выполнения работы, используя справочную информацию в окне состояния (см. Рис. 189). В случае если в процессе импорта ошибок не было, то создается файл подтверждения (verify-файл), который отправляется обратно отправителю выгрузки для установки подтверждения. В случае если при импорте были ошибки, то создается специальный err-файл, содержащий в себе данные, которые привели к ошибкам. Verify-файл при этом не создается. Если Вы в состоянии устранить причины, которые привели к ошибкам, то Вы можете повторно запустить загрузку созданного err-файла. Если он выполнится без ошибок, то файл подтверждения (verify-файл) будет создан. Несмотря на то, что при возникновении ошибок, часть данных, которая была загружена нормально, остается и фиксируется в БД-приемнике, выгрузка считается подтвержденной, только если сформировано подтверждение, а это возможно только когда все ошибки будут устранены. Подробнее о методах обработки и устранения ошибок, возникающих при загрузке данных см. в п.15.2.6.
![]() |