1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

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

Тема в разделе "Lotus - Программирование", создана пользователем Gandliar, 14 мар 2014.

  1. Gandliar

    Gandliar Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    16 фев 2004
    Сообщения:
    321
    Симпатии:
    4
    Привет!

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

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


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

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

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

    savl Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    28 окт 2011
    Сообщения:
    2.116
    Симпатии:
    157
    На старой работе при такой настройке сервак так весело "сливал конфликты", что в документ прописывались только последние изменения и документ становился ответным самому себе.
    Так что быстро отказались от этого и сделали просто Create Conflict, хоть разобраться можно.
    Но там нагрузка в виде 7-8 тыс активных пользователей была.
     
  3. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Репутация:
    0
    Регистрация:
    6 ноя 2007
    Сообщения:
    3.188
    Симпатии:
    22
    1) агент изменил документ
    2) у пользователя документ был открыт
    3) пользователь его пересохранит и создаст конфлик
     
  4. susinmn

    susinmn Well-Known Member

    Репутация:
    0
    Регистрация:
    16 окт 2007
    Сообщения:
    529
    Симпатии:
    8
    Отказались от этого. В начале все было тип-топ, потом, возможно, из-за частого изменения документа, стали биться (на одном сервере нормальный, на всех остальных документ совсем без полей), реплицироваться переставали...
     
  5. Gandliar

    Gandliar Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    16 фев 2004
    Сообщения:
    321
    Симпатии:
    4
    То есть надо создавать документ копию, привязанный к основному документу и содержащий поля, которые будут будут обновляться сервером.

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

    savl Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    28 окт 2011
    Сообщения:
    2.116
    Симпатии:
    157
    Если только текст, то можно, если там еще таблицы/файлы/ссылки/картинки, то нет.
    Разве что выгрузить в xml и сравнить, да и то гарантию не дам что поможет.
    Отказаться от локальных реплик нельзя?
     
  7. alexas

    alexas Well-Known Member

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

    Если надо абсолютно точно, то легко не получится (через DXL можно, а надо-ли?)
     
  8. Gandliar

    Gandliar Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    16 фев 2004
    Сообщения:
    321
    Симпатии:
    4
    Всем спасибо кто ответил!
     
Загрузка...
Похожие Темы - Прошу Подсказать По
  1. webwareroot
    Ответов:
    2
    Просмотров:
    436
  2. Hemenede
    Ответов:
    2
    Просмотров:
    619
  3. Gandliar
    Ответов:
    12
    Просмотров:
    1.116
  4. virusksv
    Ответов:
    2
    Просмотров:
    1.299
  5. worker-good
    Ответов:
    1
    Просмотров:
    1.368

Поделиться этой страницей