Восстанавливаются удаленные документы

Тема в разделе "Lotus - Программирование", создана пользователем nayke, 27 сен 2010.

  1. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    Ситуация вот какая. из базы А по фильтру копируются документы в созданную базу Б. Причем перед копированием меняется ReplicID, для дальнейшей репликации с репликами базы А. документы не подходящие по фильтру копируются окурками(создаются пустыми потом удаляются). Unidы документов сохраняются. Связь между базами репликами и базой Б есть. копирование выполняется верно,НО при запуске репликации в базе некоторые документы восстанавливаются(причем непонятно по какому критерию). Причем при разном фильтре документы восстанавливаются или не восстанавливаются по-разному. Может кто-то сталкивался с таким глюком?
     
  2. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Может быть в какой-то из реплик "удалённые" в Б документы изменяются после удаления?
     
  3. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    Репликация происходит непосредственно после процесса копирования. база-реплика не изменяется с момента запуска копирования. И еще с помошью scanEZ по unid проверил восстанавливающиеся документы после копирования содержаться в базе как окурки.
     
  4. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    несинхрон по времени сторон репликации м.б.
     
  5. ToxaRat

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

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    чё-то я не догоняю идею копировать док, потом его удалять
    естественно он восстановится, так как унид тот же и если в главной базе он меняется то и в реплике тоже пронаследуется
    нифига это не восстановление
    сделайте более умный фильтр для репликации, поле какое-нибудь наложите и вставте его в формулу репликации, тогда будет всё правильно
     
  6. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    документ копируется+удаляется в главной базе. это операция нужна для создания окурков которые впоследствии призваны удалять эти документы на дочерних базах, а не возвращать их оттуда.. т.е. администратор главной базы обрезает главную базу по фильтру.. и при репликации также обрезаются дочерние..
     
  7. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Не понятно, какая из них главная — А или Б. Если нужно удалять документы во всех репликах, не проще ли вместо "скопировать в Б + удалить" непосредственно удалить в А?
     
  8. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    База А занимает достаточно большой объем.. после удаления физический размер не меняется, а compact займет несколько суток.. поэтому было решено как бы подменить базу на новую... скопировать необходимые.
     
  9. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Если из базы А в базу Б производится просто копирование (в т.ч. с созданием окурков для удаляемых документов) — то зачем их между собой реплицировать? Или проблема при репликации с базами на других серверах? Тогда см. пост 2, в реплицируемой базе документ обновлялся после удаления в базе Б. Других объяснений я не вижу.
     
  10. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    Между собой Базы А и Б не реплицируются.
    Алгоритм следующий:
    1. Допустим есть База А(1000 документов) на сервере. Для нее на лок. комп. создаем реплику базу С.
    2. Далее на базу А накатывается новый шаблон.. и из нее запускается процесс копирования.
    3. Получили база Б с идентификатором реплики одинаковым с Базой С. База А имеет другой ReplicID
    4. После этого имеем База Б 200 документов 800 окурков. База С не изменяемая с пункта 1 соответственно имеющая 1000 документов.
    5. Запускаем репликацию на сервере в результате получаем База Б и База С становятся например 350 документов, 650 окурков.
     
  11. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Попробуйте в удаляемые документы копировать поле $Revisions из оригинала.
     
  12. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    Попробовал. ничего не дало. У некоторых документов это поле вообще не заполнено.
    Может еще что-нибудь может быть?


    Выяснилось еще кое-что - документы действительно восстанавливаются из реплики. при проведении репликации от Базы на лок. комп. к серверной базы без передачи документов на сервер в локальной базе восстанавливающиеся документы остались.. но все даты (modified initialy,added in this file Modified in this file, accessed in this file) меньше даты и времени удаления. В базе на лок. компе просто остается документ, а на сервере документ с таким же unidом числится в stubs. Отличий от удаляемых документов найти не удалось. Почему документы могут не удаляться?
     
  13. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Поле $ConflictAction имеется? Если да, то с каким значением?
     
  14. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    Нет из $ полей только REF, FILE, UpdateBy и revisions у некоторых
     
  15. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Попробуйте добавлять $ConflictAction со значением "2".
    У меня недавно была проблема с репликацией документа между двумя серверами в кластере. У изменённого позднее документа был более ранний $Revisions (как такое случилось — понять не могу), в результате ни туда, ни сюда. Увеличил $Revisions — репликация в миг прошла, глазом моргнуть не успел.
     
  16. ToxaRat

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

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    не понял шаг 3, как вы получили базу Б и почему у базы А вдруг стала другая репликИД?
     
  17. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
    База Б создается программно. Затем меняется идентификатор реплики. и туда копируются документы (т.е. впринципе создаются в новой базе, меняется unid, и сохраняются).




    Добавлено:
    ConflictAction="2" ничего не дал.. А как именно увеличивали $Revisions и чем это грозит если поле до заполнения пустое.
     
  18. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Добавил более позднее значение "Волшебной кнопкой" (есть в КБ). Чем грозит — не знаю. Кстати, не совсем понял насчёт дат создания/модификации проблемных документов — дата удаления позже или раньше? Да, проверьте также наличие конфликтных документов, а то может быть "нормальные" документы удаляются, а конфликты реплицируются в "нормальные".
     
  19. ToxaRat

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

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    nayke
    какая-то белеберда получается
    Сначала из базІ А делаете реплику базы С
    потом программно создаёте базу Б(утверждая что репликаИД у неё драгая) НО её репликаИД совпадает с базой С
    помоему все три базы имеют одну репликаИД и вы чего-то не понимаете
     
  20. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0

    Дата удаления позже. Конфликтных документов нет. Добавил более позднее значение "Волшебной кнопкой" (есть в КБ) - не понял а можно поподробнее..

    Добавлено:
    для Базы А ReplicID=1
    создали реплику для Базы А ReplicID=1 для Базы C ReplicID=1
    База Б создается копированием из А, а не репликой(метод CreateCopy)
    создали базу Б сразу после копирования для Базы Б ReplicID=2
    меняем База А ReplicID=2 База Б ReplicID=1 потом копируем документы в Б
    в результате
    База А ReplicID=2
    База Б ReplicID=1
    Базы C ReplicID=1
     
Загрузка...
Похожие Темы - Восстанавливаются удаленные документы
  1. Zeka
    Ответов:
    12
    Просмотров:
    4.753
  2. Omh
    Ответов:
    8
    Просмотров:
    3.730
  3. M00N
    Ответов:
    5
    Просмотров:
    1.601
  4. Renat11111
    Ответов:
    1
    Просмотров:
    1.626
  5. Medevic
    Ответов:
    3
    Просмотров:
    3.102

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