Зависание обмена данными и методика исправления
Данная методика исправления зависания обмена, написана для распределенной информационной базы ( далее РИБ) в рознице 1.0 в файловом режиме работы ( файловый вариант). Надеюсь, что некоторые моменты методики могут быть Вам полезны .
Ко мне обратилась не большая сеть магазинов для исправления периодическое зависание обмена между центральной базой РИБ на базе розницы 1.0 и некоторыми периферийными узлами ( магазинами). Все базы данных работали в файловом варианте и обменивались данными через общий каталог на ftp – сервере
Зависания были устранены, но причину этих зависаний не удалось однозначно определить. Зависания в узлах происходили перед началом загрузки после подключения после подключения к общего каталога обмена на ftp – сервере
Порядок действий
Шаг №1 Удаление бытых ссылок, зарегистрированных в плане обмена и в регистрах соответствия объектов для обмена и соответствия информационной базы
Сначала я думал, что причины зависания загрузки в узлах связано с наличием ссылок на несуществующие объекты ( битые ссылки) . Для удаления бытых ссылок я создал внешнюю обработку ( см рис 1)
В форме обработки нужно выбрать узел обмена и начинать поиск битых ссылок. Процедура ищет битые ссылки в трех местах и результат поиска выгружает в таблицу для предварительного просмотра и удаления. В данном примере на рис 1.надены 4 битые ссылке, зарегистрированные в плане обмена с магазином в центральной в базе.
После удаление битых ссылок нужно выполнить обмен. Однако зависание было не решено окончательно..
Шаг №2 Тестирование и исправление базы данных узла с помощью утилиты Утилита тестирования chdbfl.exe
Утилита предназначена для автономной проверки и исправления файлов базы данных. Данная утилита предназначена для работы только с файловой базой данных и перед ее использованием следует обязательно сделать резервную копию файла базы данных.
Для запуска утилиты в каталоге установки системы «1С:Предприятие» нужно запустить приложение ChDBFl.exe. На экран выводится окно (см. рис. 2)
.В поле Имя файла БД нужно выбрать имя файла информационной базы и установить флажок Исправлять обнаруженные ошибки, если требуется исправлять обнаруженные при проверке ошибки.
Для начала работы утилиты нужно нажать кнопку Выполнить. К этому моменту выбранная информационная база не должна быть открыта конфигуратором или в режиме 1С:Предприятие.
Если выдается сообщения о найденных и исправленных ошибках , то тогда это была причина о зависания обмена. Однако , если в процессе работы утилита сообщила о том, что какие-либо данные потеряны, то работать с такой информационной базой не рекомендуется и тогда нужно создать новый образ узла в центральной базы РИБ .
Также имеет смысла создавать новый образ узел в центральной базы РИБ если часто приходиться запускать утилиту после зависания обмена
Шаг № 3 Создание нового образа
Возможно зависания обмена связано с размерами файловой базы данных информационной базы периферийного узла РИБ или связано с обновлением версии конфигурации центральной базы РИБ . В любом случае , при постоянном зависании я рекомендую создать новый образ, который будет содержать только справочную информацию и остатки товаров в магазине.
Перед созданием нового образа рекомендую создать архив центральной базы, а также завершить весь цикл обмена узла с центральной базой потому, что будут удалены все записи о регистрации изменений для узла, начальный образ которого будет создан.
Для того чтобы интерактивно создать начальный образ для узла плана обмена, необходимо: открыть форму списка плана обмена или непосредственно форму узла плана обмена. Для выбранного узла плана обмена необходимо выполнить действие командного интерфейса Создать начальный образ… (См рис)
При этом на экране появится диалог создания начального образа, в котором будет предложено заполнить все необходимые параметры информационной базы – нового узла распределенной информационной базы. Структура диалога создания начального образа узла распределенной информационной базы аналогична структуре диалога создания новой информационной базы. После заполнения всех необходимых параметров платформа 1С:Предприятие 8 выполнит создание начального образа:
- будет создана новая информационная база с указанными параметрами;
- конфигурация распределенной информационной базы будет перенесена во вновь созданную информационную базу;
- будет выполнен перенос данных текущей информационной базы во вновь созданную, при этом для каждого элемента данных будет вызвана процедура узла плана обмена с предопределенным именем ПриОтправкеДанныхПодчиненному();
- в новом узле распределенной информационной базы будут заполнены данные узла ЭтотУзел плана обмена данными узла данной информационной базы, для которого создается начальный образ;
- в новом узле распределенной информационной базы будет создан узел, соответствующий данной информационной базе и его данные также будут перенесены, после чего ссылка на этот узел будет установлена в качестве значения главного узла созданного узла распределенной информационной базы;
- будут удалены все записи о регистрации изменений для узла, начальный образ которого был только что создан.
Следует отметить, что создание нового образа удаляет все записи о регистрации изменений, но не очищает историю обмена.
Очистить историю обмена не просто. Я не нашел в мониторе обмена кнопку очистки истории и мне пришлось создать обработку очистки историю обмена ( См Рис 4)
В первой странице внешней обработки выводится таблица с обшей количеством записей в истории по каждому узлу обмена. Кнопка “Очистить историю текущей строки” удаляет все записи в истории обмена активной строки.