С помощью утилиты RplView.exe можно просматривать обработанные репликационные пакеты и анализировать ошибки, которые были выявлены при загрузке и обработке входящих данных.
Рисунок 7.2. Утилита RplView
В левой части отображается список таблиц, входящих в пакет, а в правой – записи для выбранной таблицы. Двойным щелчком по заголовку поля можно включить окно поиска записи по таблице.
В случае, если пакет был обработан с ошибками, он перекладывается в папку для ошибочно обработанных пакетов. Необходимо проанализировать и по возможности устранить ошибки. Для этого нужно открыть пакет на просмотр и отфильтровать ошибочные записи, выбрав тип ошибки в соответствующем поле. Существуют следующие виды ошибок:
·Запрещена вставка. Запись не найдена по ключам поиска, но операция вставки данных для таблицы запрещена в настройках схемы репликации. В таком случае необходимо уточнить ключи поиска.
·Не найдена ссылка. Как правило, является следствием предыдущей ошибки. Вставляемая запись ссылается на другую запись, которая не была обработана вследствие какой либо ошибки. Ссылку, из-за которой произошла ошибка, можно увидеть в последнем столбце _RPL_ERRORLINK.
·Неоднозначное соответствие по ключам поиска. В базе данных, по ключам поиска найдено более одной записи, соответствующих вставляемой записи из пакета. Необходимо устранить дубли или уточнить ключи поиска.
·Неоднозначное соответствие по ключам поиска (по записи уже существует маппинг). В репликационный пакет попало две одинаковые записи. При этом первая запись успешно обработана и добавлена в базу данных, а вторая запись не может быть вставлена и выдает ошибку.
·Запись не может быть вставлена / обновлена (Cannot insert dublicate row…). Невозможно вставить запись, т.к. нарушается уникальный индекс. В скобках может быть указана любая другая причина, возвращаемая MSSQL-Server’ом.
В утилите RPLView имеется встроенный механизм для анализа ошибок, включающий в себя редактор для выполнения SQL-запросов и вспомогательные шаблоны для поиска записей. Это средство позволяет синхронно просматривать записи в пакете и соответствующие им записи в базе данных. Более подробное описание этого механизма будет сформировано позже.