определить наличие нескольких локальных реплик

  • Автор темы oshmianski
  • Дата начала
O

oshmianski

Гость
#1
имеем некую систему из N баз на локале.

из базы А стучимся в бд Б по notesDB.OpenByReplicaID.
если реплика бд Б на локале одна, то гут. если несколько, то иногда заворачиваем не туда.

вопрос: как на LS определить факт наличия нескольких локальных реплик одной бд?
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 490
366
#2
мобуть как в хэлпе:
Dim session As New NotesSession
Dim directory As NotesDbDirectory
Dim db As NotesDatabase
Set directory = session.GetDbDirectory( "Somerville" )
Set db = directory.GetFirstDatabase( TEMPLATE )
Call db.Open( "", "" )

и перебирать базы - получая и ИД и сохраняя в List
 
O

oshmianski

Гость
#3
пасиб.
вариант 1 есть.
если баз очень много, то этот процесс может затянутся.

еще варианты?
 

TIA

:-)
Lotus team
15.05.2009
790
2
#4
Вариант №2
notesDB1.OpenByReplicaID
oldRepid = SetNewReplicaid(notesDB1)
notesDB2.OpenByReplicaID
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
2
#5
этот вопрос уже был на форуме, но тогда на сервере надо было определить.
если на сервере, то варианта два:
1) NotesDbDirectory
2) при включенном каталогере, можно почитать базу catalog.nsf, view "($ReplicaID)"
на локале, вероятно, только первый вариант (если ничего не менять в самих базах и файловой сруктуре)
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#6
NotesDbDirectory работает на удивление быстро.
Я бы через него делал.
 
O

oshmianski

Гость
#7
что ж, видимо, это и будет правильным ответом - notesDBDirectory.

всем спасибо.