Показать сообщение отдельно
Старый 29.08.2012, 14:00   #12  
Advisor is offline
Advisor
Участник
 
33 / 13 (1) ++
Регистрация: 07.09.2005
Цитата:
Сообщение от litvinenko_anton Посмотреть сообщение
Цитата:
Сообщение от advisor Посмотреть сообщение
Цитата:
Сообщение от litvinenko_anton Посмотреть сообщение
Нашел немного инфы. Может кто подтвердит или опровергнет.
Если таблица «Предв.Действие». Она вроде как выступает хранилищем данных для отправки. Кто что может сказать по этому поводу?
Как настроена репликация: по действиям, по счетчику?
Если по действиям, то Вам уже написали про таблицы "Предв.Действие" и Действие.
Если же по счетчику, то не нужно никуда вставлять записи, а нужно ставить значение счетчика в создаваемой/модифицируемой записи.
Прошу прощения я неверное не так понял. Дело в том, что это слегка новая тема для меня.
А не могли бы по-конкретнее прояснить (или скажите где посмотреть) по первому варианту - в каком формате надо заполнять поля таблицы Пред.Действие или что они означают; по второму варианту - саму идею. Т.к. я не в курсе про счетчики. Как они обрабатываются, куда их ставить (это отдельное создаваемое поле?) и откуда брать?
Заранее спасибо
Как работает репликация по действиям:
1. Происходит вставка, изменение или удаление записи в некой таблице.
2. Срабатывают триггеры в Наве, которые пишут в таблицу предварительных действий что мы сделали (вставка,изменение,удаление), с какой записью (первичный ключ), когда и кто сделал.
3. Данные переносятся в таблицу Действий отдельным заданием в планировщике (постоянно крутится соответствующее задание и запускается с неким как правило небольшим интервалом)
4. Далее другое задание (уже непосредственно репликации) читает данные из этой таблицы, выбирает записи и отправляет получателю.
Что туда писать проще посмотреть на уже имеющиеся у Вас данные в этой таблице. Не вижу смысла перечислять все поля. Тем более они могут быть несколько кастомизированы. Основные это номер операции, номер таблицы, тип действия, ключ, дата. Если ключ составной, то его составные части перечисляются через ;


Как работает репликация по счетчикам:
1. Происходит вставка, изменение или удаление записи в некой таблице.
2. Срабатывают триггеры в Наве, которые обновляют специальное поле в этой же модифицируемой таблице. Тут возможны нюансы. Может туда ставится "имеющееся в этой таблице максимальное значение" +1, а может 0. Это тоже зависит есть ли кастомизация.
3. Далее задание репликации читает данные из этой таблицы, отправляет получателю и запоминает максимальное значение счетчика, чтобы в следующий раз читать только записи с большим значением счетчика.
В этом случае все просто для обработки SQL. Правильный update счетчика и готово.

Опять же из самих технологий понятно, что репликация по действиям может удалять записи у получателя, а по счетчикам - нет.

Очень бы рекомендовал прежде чем писать при помощи SQL записи в предействия посмотреть на код заполнения этой таблицы в Нав. Т.е. берете процедуру CreateAction искомой таблицы и по цепочке смотрите где что и как.

P.S. Еще дополню, что при репликации по действиям также запоминается последний отправленный номер счетчика. Боюсь ошибиться, но по-моему идентификатором счетчика служит номер записи из таблицы Action. Т.е. если сегодня была отреплицирована запись с номером 10, а завтра вы вставите запись с номером 1, то она не уйдет без сброса счетчика.