Репликация

Тема в разделе "Lotus - Администрирование", создана пользователем fvoice, 7 фев 2008.

  1. fvoice

    fvoice Гость

    назовем сервера work и backup

    Дано:
    два сервера в кластере
    документы connection настроены на репликацию каждые два часа
    тип репликации Pull Push
    оба сервера входят в группу LocalDomainServers, которая в свою очередь есть во всех БД с максимальными правами
    сервера имею доступ друг к другу
    реплики БД уже существуют
    в базах данных смотрел, вроде дополнительных настроек репликации нет

    Проблемы:
    Удаляю док на backup на work удаляется, а удаляю на work на backup не удаляется
    Создаю док на backup на work не создается, создаю док на work на backup создается

    доки не создаются и не удаляются даже после прохождения обычной репликации по расписанию
    в логах ошибок не видно

    Варианты:
    где то не хватает доступа, либо настроены/недонастроены дополнительные параметры репликации

    куда смотреть?
    если что то недонаписал, с удовольствием допишу :rolleyes:
     
  2. fvoice

    fvoice Гость

    тема закрыта.

    проблема была в ACL, на одном из серверов почти во всех БД было добавлено имя сервера, а роли к нему отмечены не были, а имя, пускай даже с меньшими правами перевешивает группу..
     
  3. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    Не хочу плодить темы, поэтому сюда.
    Тоже криво реплицируются документы, но по полям.
    На сервере А поле Field1 ="123":"456", поле Field2 = "***"
    На сервере Б поле Field1 ="123456":"456789", поле Field2 = "***"
    Документ один и тот же, поле Field1 не синхронизируется никак.
    При этом если поменять Field2, то изменения уедут с сервера А на Б и наоборот, а вот Field1 не едет.
    Что может быть? С чем связано?
    Репликацию настраивал не я, админы открещиваются "все работает".
    Могу спросить настройки.
     
  4. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    >Документ один и тот же, поле Field1 не синхронизируется никак.
    Посмотри на обеих серверах и сравни Seq Num у этого поля - видно в св-вах документа. Еще может быть важна дата модификации поля (notesItem.LastModified). Обычно помогает очистка истории репликации (или изменение поля и пересохранение документа-дает увеличение Seq Num)
    Очистка истории репликации вызовет большой траффик репликации.
    Указанное выше производить, если убедитесь, что репликация настроена корректно.
    >Могу спросить настройки.
    По логике описания - вполне возможно, что именно с настройками репликации всё ок.
     
  5. Baneslaer

    Baneslaer Well-Known Member

    Регистрация:
    25 янв 2011
    Сообщения:
    121
    Симпатии:
    0
    Нужно убедиться, что оба сервера видят это поле, а не каждый - видит свое. Возможно, для видимости поля нужна роль, или добавление сервера в ридерс поля(редко, но такое бывает при кривом коде).
    Попробуй написать код, который запускатеся от имени сервера и пробует получить значение этого поля с одного сервера, а потом с другого сервера.
    Если не сможет получить значение, то сервер его не видит. Такое же можно попробовать с записью, чтобы исключить моменты о невидимости документа или записи в него.
     
  6. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    Baneslaer
    Readers полей нет, у сервера FullAccess + manger + все роли.
    Более того, как такое может быть, что документ виден, а поле нет?
    hide paragraph для поля это только для UI.
    Секций тоже нет.

    OKEN
    notesItem.LastModified может отсутствовать, как долго оно сохраняется не понятно.
    Очистка истории помогает, но не всегда.
    Про "Seq Num у этого поля" да, как то не обратил внимания, но посмотрю.
    Вот это не помогает, никак, даже если это поле изменить (перезаписать).

    И еще, ладно бы одно поле... Группа полей.
    Причем проблема именно между двумя серверами и не первый раз.
    Поэтому думаю на настройки репликации.
    У нас на одном сервере работают все агенты в базе - основная реплика, а на другом нет.
    И вот в основной реплике значения неверные, а на побочных - верные.
     
  7. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    > Нужно убедиться, что оба сервера видят это поле, а не каждый - видит свое.
    ? А как это может быть при одинаковом дизайне и отсутствии конфликтов репликации? Сталкивалась только с вариантом, когда поля нет или не видно (шифрование, отсутствие доступа в секции с контролируемым доступом, репликация только части документа из-за ограничения в настройках).
    >notesItem.LastModified может отсутствовать, как долго оно сохраняется не понятно.
    Тут не подскажу.
    >Вот это не помогает, никак, даже если это поле изменить (перезаписать).
    с нашего же форума, трабла там другая (восстановление удаленного поля или репликация старого дока):
     
  8. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    OKEN
    Ситуация повторилась.
    Сервер А. Поле имеет SeqNum: 8, документ SeqNum: 21 (пересохранил 7 раз), LastModify: 04/07/2014 08:54:12
    Сервер Б. Поле имеет SeqNum: 6, документ SeqNum: 15, 04/07/2014 08:47:01
    $ConflictAction = 1
    Добавленное поле в документ приехало без проблем.
    Исправленное поле (другое) доехало без проблем.
    Сейчас у документов SeqNum одинаковый: 24
    У меня таких 10 полей в документе.
     
  9. Baneslaer

    Baneslaer Well-Known Member

    Регистрация:
    25 янв 2011
    Сообщения:
    121
    Симпатии:
    0
    давай-те рассмотрим такой вариант - как рассинхронизация времени на серверах.

    Допустим, на сервере А - 10:10, а на сервере B - 10:00
    Если документ правят на сервере А, то изменения удачно приезжают на сервер B.
    Если документ правят на сервере B, то изменения могут не приехать на сервер А, т.к. в репликейшен хистори записано, что сервер А реплицировался в более позднее время.

    Т.е., если у вас все серваки реплицируются нормально, а траблы только с одним из серверов, то скорее всегона нем неправильное время.
    Если же время везде правильное, то советую убить неправильную реплику и создать правильную с другого сервера (фиксап+компакт иногда не помогает).
     
  10. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    >Сервер А. Поле имеет SeqNum: 8, документ SeqNum: 21 (пересохранил 7 раз), LastModify: 04/07/2014 08:54:12
    >Сервер Б. Поле имеет SeqNum: 6, документ SeqNum: 15, 04/07/2014 08:47:01
    >$ConflictAction = 1
    Без поля $ConflictAction у меня в документе после модификации поля и сохранения документа лс-агентом SeqNum документа увеличивается, SeqNum поля становится равным SeqNum документа. Из предположений - у вас между серверами конфликт на этом документе и сервер его как-то криво обрабатывает (Conflict handling = "Merge conflicts"). Вышеуказанное LastModified - это у поля или у документа? (или посмотрите актуальные на текущий момент значения)
     
  11. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    OKEN
    Действительно стоит Merge, убрал. Будем смотреть.
    Baneslaer
    Разница во времени 1 секунда, и то я думаю из-за метода проверки:
    set doc = db.createDocument
    Msgbox doc.created

    db - переполучаю, затем
     
  12. Baneslaer

    Baneslaer Well-Known Member

    Регистрация:
    25 янв 2011
    Сообщения:
    121
    Симпатии:
    0
    >>savl

    1 секунда не влияет, можете, даже, не копать в ту сторону.
    Насчет Merge, думал, что сделано специально.
    Раз не специально, то обратите еще внимание на это - http://www-10.lotus.com/ldd/nd6forum.nsf/5...a3?OpenDocument
     
Загрузка...

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