ОБСУЖДЕНИЕ

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

17 ответов 7,5 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

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

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

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

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

Так же этот агент срабатывает при открытии базы( PostOpen ), и пока агент не отработает, база не открывается...
Возможно ли этот вариант как-то улучшить???
 
глянь базу catalog.nsf, если каталог включен, она должны быть, в ней вид ($ReplicaID)
но это жесткая завязка, если разработчики поменяют дизайн каталога, то твой код может перестать работать.
 
Не нахожу у себя такой базы
 
ToxaRat, а есть такое? ненахожу
 
GetByReplicaID не подходит?
flag = notesDatabase.OpenByReplicaID( server$, replicaID$ )
Set notesDatabase = notesDbDirectory.OpenDatabaseByReplicaID( rid$ )

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


wowa, см в справке админа "Database catalogs", "Setting up a server's database catalog"
 
Akupaka , спасибо, но немножко не то..
Реплика то будет по-любому, а вот как определить сколько их?
Если одна реплика, то нормально.
А вот если их имеется несколько , то очень плохо.
 
wowa, метод NotesView.GetAllDocumentsByKey тебе о чем-то говорит? :)
 
Akupaka , ну я прав, данный код получить только одну реплику?
 
в общем, да... мог бы и в справке глянуть :D
 
глянь базу catalog.nsf, если каталог включен, она должны быть, в ней вид ($ReplicaID)
Вот именно:
1.База catalog должна быть создана
2.Её реплики д.б. на всех серверах
3.На всех серверах должна быть поднят одноимённый сервис
4.У всех баз должно быть включено св-во: включать в каталог

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

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

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

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

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

Похожие темы

P
Ответы
25
Просмотры
36 тыс.
I

Статистика тем

Создано
wowa,
Последний ответ от
ToxaRat,
Ответы
17
Просмотры
7 477