• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Открыть Базу На Другом Сервере 2

  • Автор темы Dragon108
  • Дата начала
D

Dragon108

Есть два сервера (не в кластере). Полностью идентичных, кроссертифицированны, между ними идет полная репликация (всех данных). Сейчас часть пользователей перекидывается с одного сервера на другой. Проблема в следующем:
Если пользователю уже был поставлен Lotus и открыты, например, базы с первого сервера, а потом его "перевели" на второй (удалили учетку с первого сервера и создали новую на втором). То при открытии базы со второго сервера в лотусовом клиенте (где уже открыты базы с первого сервера) во встроенных представления подтягиваются вьюхи с документами с первого сервера ... Но если все базы со второго сервера открыть руками, то встроенные вьюхи подтянуться, как положено из второго сервера ...

Значки баз с первого сервера можно удалить (что бы пользователь в них просто не работал) можно почистить файл desktop6.ndk и desktop8.ndk, почистить notes.ini, что бы заново подключаться к серваку, почистить кэш - удалить файл cache.ndk, но даже так происходит вышеописанная ситуация, встроенные представления подтягиваются с первого сервера.

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

Подскажите плиз.

P.S. нашел примерно похожую тему - тут . Но там как то не нашел ответа (
 
30.06.2006
141
5
BIT
0
Dragon108,

во встроенных представления подтягиваются вьюхи с документами с первого сервера ...
Если речь про embedded view, то надо смотреть в дизайнере, откуда берутся данные, отображаемые в этих представлениях.
 
D

Dragon108

Dragon108,


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

Ну embedded view вставлено просто из другой базы, и насколько я понимаю, оно привязывается по Replica ID, но никак ни к серверу ... и вот каким боком лотус выстраивает очередь серверов откуда ее подгружать ... для меня пока загадка.

P.S. Заметил так же, что если просто тыкнуть по иконке базы на втором сервере (просто не открывая ее), то все встроенные представления будут подтягиваться со второго сервера ... мистика. Причем никакие программные методы не помогают, ни Open - методы у NotesDatabase, ни Open методы у NotesUiWorkspace - этот метод врообще открывает базу в клиенте, можно провалиться в документ ... но блин все равно ... если встроенное представление из этой базы, и ручками не тыкнуть или открыть эту бд на втором сервере, то представление будет подтягиваться с первого ...
 
30.06.2006
141
5
BIT
0
Dragon108,

Попробуй:


I've noticed that the embedded views are being loaded from the server where the app that have the embedded views was opened last.

А вообще обращение к другим базам напрямую (Embedded View или @DbLookup/@DbColumn) - это не самый лучший подход в разработке (хотя достаточно простой и удобный), т.к. нет целостности - можно, например, в целевой базе поменять представление, а в исходных (которые используют данные из целевой) где-то забыть тоже поменять (IDE то никак не отслеживает подобные связи).

Поэтому для больших/сложных приложений обычно используют интерфейсы, через которые идет взаимодействие между различными частями системы. В качестве примера можно рассмотреть базу справочника:

1. Есть несколько модулей (баз) системы, которые используют один справочник
2. В базе справочника есть несколько представлений с данными
3. Также в ней есть интерфейсная библиотека с классами/функциями, с помощью которых идет работа с данными справочника (получение/правка/...)
4. Библиотека наследуется в те модули, которые используют справочник
5. Если надо что-то поменять в справочнике, то вносятся правки в представления и библиотеку (чтобы отдавала все как надо)
6. Остальные базы (модули) править не надо - профит ;-)
 
D

Dragon108

Dragon108,

Попробуй:

За ссылку спасибо, но вижу там слова DXL :( Собственно догадывался что к этому все и приведет :)


А вообще обращение к другим базам напрямую (Embedded View или @DbLookup/@DbColumn) - это не самый лучший подход в разработке (хотя достаточно простой и удобный), т.к. нет целостности - можно, например, в целевой базе поменять представление, а в исходных (которые используют данные из целевой) где-то забыть тоже поменять (IDE то никак не отслеживает подобные связи).

Вообще у нас принято, что если уж используем встроенные представления, то берем их из профильных документов в бд, где они хранятся в рич-текстовом поле в DXLе и соответственно для каждого сервера подгружаем нужное представление из нужного профильного документа. В данном приложение это, к сожалению, не реализовано, поэтому ох уж как не хочется все переделывать ...


Dragon108,
3. Также в ней есть интерфейсная библиотека с классами/функциями, с помощью которых идет работа с данными справочника (получение/правка/...)

:D Вот к этому не придерешься ... так и приходится каждый раз что то придумывать, вместо того, что бы пользоваться стандартными вещами предоставляемыми IBM в Lotusе
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!