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

wowa

Well-Known Member
01.02.2007
845
0
#1
Пишу агент...
Главная задача которой определить, имеется ли больше одной реплики конкретной базы.

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

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

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

Akupaka

А че я?.. О.о
04.10.2007
3 360
2
34
Kiev, Ukraine
#2
глянь базу catalog.nsf, если каталог включен, она должны быть, в ней вид ($ReplicaID)
но это жесткая завязка, если разработчики поменяют дизайн каталога, то твой код может перестать работать.
 

wowa

Well-Known Member
01.02.2007
845
0
#7
Akupaka , спасибо, но немножко не то..
Реплика то будет по-любому, а вот как определить сколько их?
Если одна реплика, то нормально.
А вот если их имеется несколько , то очень плохо.
 

wowa

Well-Known Member
01.02.2007
845
0
#11
Akupaka , ну я прав, данный код получить только одну реплику?
 

Constantin A Chervonenko

Well-Known Member
Lotus team
#13
глянь базу catalog.nsf, если каталог включен, она должны быть, в ней вид ($ReplicaID)
Вот именно:
1.База catalog должна быть создана
2.Её реплики д.б. на всех серверах
3.На всех серверах должна быть поднят одноимённый сервис
4.У всех баз должно быть включено св-во: включать в каталог

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

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

Akupaka

А че я?.. О.о
04.10.2007
3 360
2
34
Kiev, Ukraine
#15
а если так категорично подходить )) то и реплики нефиг складывать на одном серваке, а если надо, чтобы приложение работало корректно, то каталогер можно и включить - он вообще полезный сам по себе, на сколько я знаю...

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

К ста: а в Replication History заглядывали?
а что там будет, если реплики не реплицируются между собой? )
 

Constantin A Chervonenko

Well-Known Member
Lotus team
#16
2-3) если нам надо только на одном, то эти условия не обязательны; кроме того, почему это реплики?! О.о
1.Две реплики одной базы на сервере = самоубийство (их "просто так" и не создашь, но если постараться...). Или подарок от уволенного админа.
2.Если серверов штук 60..100, то пролистать 60..100 каталогов - это будет по-трудоёмче, чем пролистать 60 директорий DATA :)
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
2
34
Kiev, Ukraine
#17
1.Две реплики одной базы на сервере = самоубийство (их "просто так" и не создашь, но если постараться...). Или подарок от уволенного админа.
Константин, мы уже обсуждали этот вопрос ранее и с Вами - если правильно подходить к делу, то это рабочая фишка :)

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