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

  • Автор темы wowa
  • Дата начала
W

wowa

Пишу агент...
Главная задача которой определить, имеется ли больше одной реплики конкретной базы.

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

Код:
Dim dbdir As New NotesDbDirectory("")
Set db = dbdir.GetFirstDatabase(DATABASE)

Получаю директорию, дальше перебираю все базы и сравниваю ReplicaID.
Это очень долго, возможно ли как-то сразу получить все реплики????

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

Akupaka

глянь базу catalog.nsf, если каталог включен, она должны быть, в ней вид ($ReplicaID)
но это жесткая завязка, если разработчики поменяют дизайн каталога, то твой код может перестать работать.
 
W

wowa

Akupaka , спасибо, но немножко не то..
Реплика то будет по-любому, а вот как определить сколько их?
Если одна реплика, то нормально.
А вот если их имеется несколько , то очень плохо.
 
A

Akupaka

wowa, метод NotesView.GetAllDocumentsByKey тебе о чем-то говорит? :)
 
W

wowa

Akupaka , ну я прав, данный код получить только одну реплику?
 
A

Akupaka

в общем, да... мог бы и в справке глянуть :D
 
30.05.2006
1 345
12
BIT
0
глянь базу catalog.nsf, если каталог включен, она должны быть, в ней вид ($ReplicaID)
Вот именно:
1.База catalog должна быть создана
2.Её реплики д.б. на всех серверах
3.На всех серверах должна быть поднят одноимённый сервис
4.У всех баз должно быть включено св-во: включать в каталог

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

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

Akupaka

а если так категорично подходить )) то и реплики нефиг складывать на одном серваке, а если надо, чтобы приложение работало корректно, то каталогер можно и включить - он вообще полезный сам по себе, на сколько я знаю...

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

К ста: а в Replication History заглядывали?
а что там будет, если реплики не реплицируются между собой? )
 
30.05.2006
1 345
12
BIT
0
2-3) если нам надо только на одном, то эти условия не обязательны; кроме того, почему это реплики?! О.о
1.Две реплики одной базы на сервере = самоубийство (их "просто так" и не создашь, но если постараться...). Или подарок от уволенного админа.
2.Если серверов штук 60..100, то пролистать 60..100 каталогов - это будет по-трудоёмче, чем пролистать 60 директорий DATA :)
 
A

Akupaka

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

2.Если серверов штук 60..100, то пролистать 60..100 каталогов - это будет по-трудоёмче, чем пролистать 60 директорий DATA
да ну какие 60 серверов? автор хочет проверять на текущем для базы сервере!
кроме того, что проще? сделать 60 раз (OpenDatabase + GetAllDocumentsByKey) или перебрать 60 раз каталог DATA?
 
Мы в соцсетях:

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