Репликация Microsoft побеждена

На 2007, ноября 23 числа

Репликация на основе механизма Microsoft заработала в полной мере на базе объектов DocsVision. По сути закончена моя годовая работа и можно сказать с положительным итогом. Работа сделана без изменения схемы работающей базы данных. Поэтому принцип "не навреди" соблюден в полной мере.

***
Мне грустно видеть лист опавший
К ногам моим уставшим днем,
Закат горит совсем не страшный,
К которому всю жизнь идем.

Закат за полем, за горою
Моих шальных, беспутных дел,
Которых шумною весною
Нерукотворно ты хотел.

Мне грустно, грустно осознанье
Креста и Млечного Пути
И в повтореньи наказанья
Мне снова мимо не пройти.

Каким-то снова бездорожьем
Идешь на крест понятный свой,
И Ангел греет словом Божьим,
Ведя слепого за собой.

Комментарии

Изображение пользователя Serguei_Tarassov.

Bien joué

Хирургическая работа ;)
Даже не верится, что еше год прошел...

Изображение пользователя ipanshin.

Именно

Ну да, хирургическое, а также забор анализов БД и прочие примочки:)
А вот год действительно прошел.

Год прошел, и снова Новый,
Елкой в доме зеленея,
Каждый со своей обновой,
Новогоднею затеей...

Изображение пользователя Serguei_Tarassov.

Помню

Я еще такое помню:

Пусть все на елке веселятся,
Пусть за здоровье не боятся,
Пусть жизнь светлеет с каждым днем,
Пусть все вокруг горит огнем!
;)

Изображение пользователя ipanshin.

Спасибо

Спасибо. Я думаю ее можно прикрутить к любой БД (sql 2005). Это я намекаю на продолжение. Вдруг у кого-то такая же филиальная проблема.

Расскажи про задачу

Расскажи не много про решение, точнее про задачу, которая решена.
Что делает репликация? Консолидуриует все в центальной БД?

Изображение пользователя ipanshin.

Расскажи

Решение обеспечивает распределение и обмен информации главного офиса с некоторым списком филиалов. Причем в каждый филиал перемещается только своя информация, которая описывается типом или классом объектов и принадлежностью объекта к некоторой сущности типа папка или folder. В рамках работы приложения со стороны главного офиса и филиалов работа с папками в репликационной зоне ничем не отличается от работы с локально расположенной информацией. Причем (в силу моей ошибки в sql предложении) я добился даже того, что главный офис может отслеживать скрытно работу филиала. Своего рода СОРМ для систем документооборота. Конечно, главный офис консолидирует все данные. В принципе можно даже завязать фильтрацию объектов в филиалы с некими свойствами самих объектов, т.е. ввести условия в репликационный механизм.

Интересно

Т.е. репликация двунаправленная. Так?
А как разрешаются конфликты? Например, один и тот же объект изменили между сеансами репликации и в ЦО и в филиале.

Изображение пользователя ipanshin.

Yes, merge replication

Да, двунаправленная. Конфликты могут разрешаться стандартным способом, который предлагает microsoft. А можно и самим разрешать конфликты, анализируя msmergeconflictsinfo. Такая возможность существует и я ее использую. У меня главный офис имеет преимущество при конфликте.

Изображение пользователя ipanshin.

from docs

Всю эту бороду ты и сам можешь анализировать:) У microsoft обычно побеждает публикатор, но не всегда. можно указать, чтобы побеждал подписчик. Т.е. варианта пожизни два либо подписчик, либо публикатор.

The type of conflict that occurred, which can be one of the following:

1 = UpdateConflict: The conflict is detected at the row level.
2 = ColumnUpdateConflict: The conflict detected at the column level.
3 = UpdateDeleteWinsConflict: The delete wins the conflict.
4 = UpdateWinsDeleteConflict: The deleted rowguid that loses the conflict is recorded in this table.
5 = UploadInsertFailed: The insert from Subscriber could not be applied at the Publisher.
6 = DownloadInsertFailed: The insert from Publisher could not be applied at the Subscriber.
7 = UploadDeleteFailed: The delete at Subscriber could not be uploaded to the Publisher.
8 = DownloadDeleteFailed: The delete at Publisher could not be downloaded to the Subscriber.
9 = UploadUpdateFailed: The update at Subscriber could not be applied at the Publisher.
10 = DownloadUpdateFailed: The update at Publisher could not be applied to the Subscriber.
11 = To be added.
12 = To be added.
13 = To be added.
14 = To be added.