Очередное открытие базы

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
Доброго времени суток!
Сразу скажу... поиском уже пользовался, но ничего тогкового не нашел...
Суть проблемы в следующем... при открытии базы надо проверять с домашнего ли сервера пользователя она открывается, если нет - то переключить на базу с домашнего. Но не переоткрывать базу, а перенаправить запрос к базе на нужном сервере... вот к примеру как это делается в кластере.
Кто может что-нить посоветовать?
Особенно волнует вторая часть вопроса

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

ну вот так можно изменить имя одно имя сервера на другое
Код:
If Not db.Open("","names.nsf") Then Exit Sub
Server = "имя сервера"
search = {SELECT @contains(@LowerCase(Destination);"} + Server +{")}	
Set coll = db.Search( search, Nothing,0)	
If coll.Count > 0 Then	
Call coll.StampAll("OptionalNetworkAddress", otherServer)
Call coll.StampAll("PhoneNumber",otherServer)		
End If

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

2) попробуй читать переменную окружения Location, но на сколько она отвечает текущей... не пробовал ;)
 
ну читать переменную окружения не проблема... я даже по экспериментировал.... в этой переменной действительно сохраняется текущий Location
Только вот вопрос... как перенаправить запрос на нужный сервер
 
а ты пробовал с доступом?
по-идее, если пользователь открывает реплику с другого сервера, к которой он не имеет доступа, то клиент его сам перебросит на ту, к которой есть... хотя, я могу ошибаться...

а вообще, то задача не корректна на уровне который выделен нам как программерам, думаю,что надо рыть в сторону API, если вообще есть такая возможность - перенаправлять запросы подобные...
 
тогда такой вопрос, а возможно ли изменить иконук в воркспейсе? поменять ей ссылку на нужную мне
 
думаю, что эта иконка как-то соотносится с документом в базе desktop.ndk либо bookmarks.nsf
попробуй там порыть

а в чем смысл задачи вообще? :(
 
смысл в том, чтоб юзер мог открывать базу только на определенном сервере. и чтоб в иконке небыло возможности выбирать реплики на других серверах.
 
дык, для этого существует ACL
между серверами ACL не реплицировать, настроить как надо на каждом из серверов, и юзеры не смогут открыть "не ту" базу...
 
Дело в том, что такой вариант не подходит :(
По крайней мере на этом этапе
 
просто, если с самого начала выкручиваться через жпу, то что же будет дальше? :(
 
дело в том, что система писана под заказ... и написана какраз через опу :)
и если сейчас все приводить к тому как оно должно быть - работа станет...

Ну а вобщем все понятно... будем думать
 
думать - это наше все... :)
удачного решения
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab