Прошу Подсказать По Поводу Исключения Конфликтов Репликации

  • Автор темы Автор темы Gandliar
  • Дата начала Дата начала

Gandliar

Lotus Team
16.02.2004
571
26
BIT
170
Привет!

Есть приложение на сервере с которым реплицируется локальные клиенты.

На форме есть ряд полей (computed when composed), которые изменяет время от времени агент на сервере, на локале они не меняются.
На форме установлено $conflictAction = "3" Merge/No Conflicts

в хелпе написано вот так

Merge/No Conflicts -- If replication occurs, saves the edits to each field in a single document. If two users edit the same field in the same document, Notes selects the field from the main document, based on time and date, and an internal document sequence number. No conflict document is generated, instead conflicting documents are merged into a single document at the field level.


Вопрос, можно ли быть уверенным, что данные вводимые на локальном клиенте и реплицируемые с сервером не потеряются, если сервер меняет значения в своих полях этого же документа время от времени.

Я потестил, вроде все так и происходит, но чего то уверенности не хватает.

Заранее благодарю.
 
На старой работе при такой настройке сервак так весело "сливал конфликты", что в документ прописывались только последние изменения и документ становился ответным самому себе.
Так что быстро отказались от этого и сделали просто Create Conflict, хоть разобраться можно.
Но там нагрузка в виде 7-8 тыс активных пользователей была.
 
1) агент изменил документ
2) у пользователя документ был открыт
3) пользователь его пересохранит и создаст конфлик
 
На форме установлено $conflictAction = "3" Merge/No Conflicts
Отказались от этого. В начале все было тип-топ, потом, возможно, из-за частого изменения документа, стали биться (на одном сервере нормальный, на всех остальных документ совсем без полей), реплицироваться переставали...
 
То есть надо создавать документ копию, привязанный к основному документу и содержащий поля, которые будут будут обновляться сервером.

Тогда вопрос, можно ли как то попростому сравнить 2 ричтекстовых поля? Одинаковые они или надо перезаписать?
 
можно ли как то попростому сравнить 2 ричтекстовых поля?
Если только текст, то можно, если там еще таблицы/файлы/ссылки/картинки, то нет.
Разве что выгрузить в xml и сравнить, да и то гарантию не дам что поможет.
Отказаться от локальных реплик нельзя?
 
Если только текст, то можно, если там еще таблицы/файлы/ссылки/картинки, то нет...
Не совсем так.
Если хранить в RTF инфу, как HTML or MIME, то простым сравнением типа doc.RTF(0) = doc.RTFchanged(0) найдутся различия в тексте/таблицах (кроме различия в атрибутах - шрифт, цвет ...) и в ссылках/аттачах/картинках (по наличию/названию).
Если изменения RTF производятся в UI - то это вторая вкладка в пропертях поля - Storage-Store contents as HTML and MIME.
Если изменения RTF в бэкграунде - то перед записью конвертировать в MIME.

Если надо абсолютно точно, то легко не получится (через DXL можно, а надо-ли?)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!