• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

Gandliar

Lotus Team
16.02.2004
556
26
BIT
40
Привет!

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

На форме есть ряд полей (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.


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

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

Заранее благодарю.
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
179
На старой работе при такой настройке сервак так весело "сливал конфликты", что в документ прописывались только последние изменения и документ становился ответным самому себе.
Так что быстро отказались от этого и сделали просто Create Conflict, хоть разобраться можно.
Но там нагрузка в виде 7-8 тыс активных пользователей была.
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
1) агент изменил документ
2) у пользователя документ был открыт
3) пользователь его пересохранит и создаст конфлик
 
S

susinmn

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

Gandliar

Lotus Team
16.02.2004
556
26
BIT
40
То есть надо создавать документ копию, привязанный к основному документу и содержащий поля, которые будут будут обновляться сервером.

Тогда вопрос, можно ли как то попростому сравнить 2 ричтекстовых поля? Одинаковые они или надо перезаписать?
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
179
можно ли как то попростому сравнить 2 ричтекстовых поля?
Если только текст, то можно, если там еще таблицы/файлы/ссылки/картинки, то нет.
Разве что выгрузить в xml и сравнить, да и то гарантию не дам что поможет.
Отказаться от локальных реплик нельзя?
 
A

alexas

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

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

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