Получить все реплики базы

Тема в разделе "Lotus - Программирование", создана пользователем wowa, 25 сен 2009.

  1. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Пишу агент...
    Главная задача которой определить, имеется ли больше одной реплики конкретной базы.

    Агент работает долго.

    Код (Text):
    Dim dbdir As New NotesDbDirectory("")
    Set db = dbdir.GetFirstDatabase(DATABASE)
    Получаю директорию, дальше перебираю все базы и сравниваю ReplicaID.
    Это очень долго, возможно ли как-то сразу получить все реплики????

    Так же этот агент срабатывает при открытии базы( PostOpen ), и пока агент не отработает, база не открывается...
    Возможно ли этот вариант как-то улучшить???
     
  2. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    глянь базу catalog.nsf, если каталог включен, она должны быть, в ней вид ($ReplicaID)
    но это жесткая завязка, если разработчики поменяют дизайн каталога, то твой код может перестать работать.
     
  3. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Не нахожу у себя такой базы
     
  4. ToxaRat

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

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    GetByReplicaID не подходит?
     
  5. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    ToxaRat, а есть такое? ненахожу
     
  6. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    flag = notesDatabase.OpenByReplicaID( server$, replicaID$ )
    Set notesDatabase = notesDbDirectory.OpenDatabaseByReplicaID( rid$ )

    ToxaRat, твоя видать самописная :)


    wowa, см в справке админа "Database catalogs", "Setting up a server's database catalog"
     
  7. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Akupaka , спасибо, но немножко не то..
    Реплика то будет по-любому, а вот как определить сколько их?
    Если одна реплика, то нормально.
    А вот если их имеется несколько , то очень плохо.
     
  8. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    wowa, метод NotesView.GetAllDocumentsByKey тебе о чем-то говорит? :)
     
  9. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0

    Akupaka , мммммм....

    я имел ввиду про :

     
  10. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    ой, я писал Тохе. сорь, что сбил с толку
     
  11. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Akupaka , ну я прав, данный код получить только одну реплику?
     
  12. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    в общем, да... мог бы и в справке глянуть :D
     
  13. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Вот именно:
    1.База catalog должна быть создана
    2.Её реплики д.б. на всех серверах
    3.На всех серверах должна быть поднят одноимённый сервис
    4.У всех баз должно быть включено св-во: включать в каталог

    пп 1 и 3 в последних версиях автоматом выполняет инсталлер (да и то админ мог прибить для экономии). А остальное?

    К ста: а в Replication History заглядывали?
     
  14. wowa

    wowa Well-Known Member

    Регистрация:
    1 фев 2007
    Сообщения:
    842
    Симпатии:
    0
    Нет, а чем она мне может помочь?
     
  15. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    а если так категорично подходить )) то и реплики нефиг складывать на одном серваке, а если надо, чтобы приложение работало корректно, то каталогер можно и включить - он вообще полезный сам по себе, на сколько я знаю...

    1) создается автоматически при включении задачи;
    2-3) если нам надо только на одном, то эти условия не обязательны; кроме того, почему это реплики?! О.о
    4) единственный значимый минус в использовании такого способа.

    а что там будет, если реплики не реплицируются между собой? )
     
  16. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    1.Две реплики одной базы на сервере = самоубийство (их "просто так" и не создашь, но если постараться...). Или подарок от уволенного админа.
    2.Если серверов штук 60..100, то пролистать 60..100 каталогов - это будет по-трудоёмче, чем пролистать 60 директорий DATA :)
     
  17. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Константин, мы уже обсуждали этот вопрос ранее и с Вами - если правильно подходить к делу, то это рабочая фишка :)

    да ну какие 60 серверов? автор хочет проверять на текущем для базы сервере!
    кроме того, что проще? сделать 60 раз (OpenDatabase + GetAllDocumentsByKey) или перебрать 60 раз каталог DATA?
     
  18. ToxaRat

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

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    самоубийство это две разные реплики шаблонов :)
     
Загрузка...

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