Если сервер не отвечает, то открыть БД с другого сервера

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

oxystile

Гость
#1
3 офиса, на каждом установим Domino, настроим репликации.
вопрос: если вдруг сервер на одном из офисов завалится и чел кликнет на открытие базы, то можно ли чтобы автоматом открылась база на работающем сервере, вместо появления сообщения "сервер не доступен." А когда сервер заработает, то базы уже будут открываться по умолчанию с этого сервера?
 

puks

Well-Known Member
Lotus team
03.02.2007
1 971
16
#2
Если у тебя три иконки есть на workspace для каждого сервера, ты все равно получаешь вопрос о недоступности сервера?

Если иконки сложены с стопку, то откроется верхняя, с которой работал в последний раз.

Может тебе сделать программную надстройку, где ты будешь (программно) пытаться открыть базу на каком-то сервере, а, если не получается, то уже на другом?
 
O

oxystile

Гость
#3
да, с иконками все понятно, но мне надо будет у пользователей их повытаскивать, обыяснить, что, вот если эта не откроется, попробуйте кликнуть сюда...сложно это будет для юсеров

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

Kee_Keekkenen

Well-Known Member
05.09.2006
639
6
Москва
#4
нужно создать коннекшены ко всем серверам.. и раз это реплики, то поставить галку на свойстве рабочей области Stack replica icons (4-й пункт снизу вверх в свойствах рабочей области), т.о. иконка будет одна и открываться будет бд на том, что отображен или по доступности)
 
O

oxystile

Гость
#5
конекшены ко всем серверам в лок. адр. книгах, же?
а как это сделать автоматически у всех, слышала что вроде либо через программу, а юсерам кнопочку отправить на запуск кода, либо через политики,
если кто поделится подробной информ., буду благодарна
 
D

D!m@n

Гость
#8
Если между серверами каналы с хорошей пропускной способностью, то можно объединить их в кластер, хотя для серверов в разных офисах это не лучшее решение.
Лучше вариант, который предложил уважаемый Kee_Keekkenen, только его можно слегка автоматизировать: например, разослать юзерам кнопку с кодом, создающим соответствующий документ Connection в локальной names.nsf.
 
O

oxystile

Гость
#9
так а в чем "-" кластеризации, в случае, если серверы в разных офисах?

<<разослать юзерам кнопку с кодом, создающим соответствующий документ Connection в локальной names.nsf. >>
когда-то давно видела подобный код, но к сожалению не сохранила, может у кого есть хотя бы ссылочка?
 
D

D!m@n

Гость
#10
так а в чем "-" кластеризации, в случае, если серверы в разных офисах?
Во-первых, кластер можно сделать только из серверов одного домена (как у Вас с этим? один домен или разные?).
А, во-вторых, считается, что между серверами кластера должна быть постоянная, стабильная высокоскоростная линия (а с этим у Вас как? хотя бы 10 Мбит/с между серверами есть?). Делать кластер из территориально удаленных друг от друга серверов - дурной тон, хотя и возможно. Но ради одной базы этого делать точно не стоит.
 
D

D!m@n

Гость
#11
Сейчас время образовалось - написал Вам код кнопки, добавляющей док-т Connection в локальную names.nsf. Можно разослать юзерам.

Код:
	On Error Goto MyErr
Dim s As New NotesSession
Dim uiw As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim dbNames As NotesDatabase
Dim doc As NotesDocument
Dim viewConnections As NotesView

servername$="MyServer/MyOrg" ' здесь задать имя сервера
servernotes$=s.CreateName(servername$).Canonical

Set dbNames=s.GetDatabase("", "names.nsf", False)
Set viewConnections=dbNames.GetView("($Connections)")

Set doc=viewConnections.GetFirstDocument
Do Until doc Is Nothing
If s.CreateName(doc.Destination(0)).Canonical = servernotes$ Then Exit Do
Set doc=viewConnections.GetNextDocument(doc)
Loop

If doc Is Nothing Then
Set doc=dbNames.CreateDocument		
End If

doc.Form="Connection"
doc.ConnectionLocation="*"
doc.Source="*"
doc.ConnectionType="0"
doc.LanPortName="TCPIP" ' здесь задать имя порта
doc.Destination=servername$ 
doc.OptionalNetworkAddress="myserver.mydomain.ru" ' здесь задать доменное имя или IP-адрес сервера

Call doc.Save(1, 0)

Set uidoc=uiw.EditDocument(True, doc, False, , True)
uidoc.Refresh
uidoc.Save
uidoc.Close

Goto es
MyErr:
Msgbox Error$ & " в строке " & Erl
Resume es
es:
 
O

oxystile

Гость
#12
спасибо огромное за совет и за код!:)
+1
да, 10 Мбит/с у нас не будет
 
D

D!m@n

Гость
#13
да, 10 Мбит/с у нас не будет
В принципе, здесь все строго индивидуально. Надо смотреть, сколько баз, какие они по размеру и количеству документов, сколько пользователей и т.п. Если канал не потянет, можно ведь отключить в кластере кластерную репликацию (и пользоваться фактически только фэйл-сэйв перенаправлением), но тогда все равно надо будет, чтобы шедульная репликация была достаточно частой...
 
O

oxystile

Гость
#14
Баз, которые должны реплицироваться с интервалом 10 минут будет от 4 до 6, они небольшие по размеру.
Все остальные бызы будут реплицироваться ночью.
Однако следует учесть папку mail, там порядка 150 ящиков...
 
D

D!m@n

Гость
#15
Баз, которые должны реплицироваться с интервалом 10 минут будет от 4 до 6, они небольшие по размеру.
Все остальные бызы будут реплицироваться ночью.
Однако следует учесть папку mail, там порядка 150 ящиков...
Так почтовые базы - тоже реплики на всех трех серверах?
Если так, то кластер лучше не поднимать, т.к. кластерный репликатор может задохнуться просто...
Впрочем, если убрать файлик ncrepl.exe из папки сервера, то получится кластер без кластерной репликации. Можете попробовать такой вариант.
Если что - вернете все обратно, дело 5 минут.