Кеширование переменных Environment

  • Автор темы Xalet
  • Дата начала
X

Xalet

Собственно суть проблемы:

присваиваю значение переменной session.SetEnvironmentVar("имяпеременной", data). Она считывается нормально session.GetEnvironmentValue("имяпеременной").
Выключаю лотус. Открываю notes.ini нахожу переменную, очищаю, сохраняю. Запускаю лотус. session.GetEnvironmentValue("имяпеременной") упорно продолжает возвращать значение data. Где оно его запоминает, если не в notes.ini?

Версия клиента 6.5.3. Запускаю не на сервере.
 

VladSh

начинающий
Lotus Team
11.12.2009
1 797
158
BIT
233
Может где-то код забыли, который прописывает значение; например на QO базы данных/вида/формы?
 
X

Xalet

Может где-то код забыли, который прописывает значение; например на QO базы данных/вида/формы?

Так именно в этом коде я и проверяю, если считал из конфигурации новое значение, то заменяю сетом, если не считал, то проверяю, присвоено ли что-то уже гетом и если нет, то не разрешаю открыть базу. Но даже если бы я где-то как-то вписывал бы вызывая SetEnvironmentVar, после закрытия лотуса, оно бы появилось в notes.ini, но там как не было, так и нет, но успешно считывается значение. Непонятно только откуда.
 
T

TIA

xalet
Убедитесь в полной выгрузке процесса nlnotes.exe

Подробности:
Процесс Notes довольно долго выгружается из памяти. Когда окно Notes пропало, ещё не значит что процесс выгрузился. Если в момент выгрузки процесса вы начнёте загружать другой процесс, использующий ещё не выгруженные dll, видоуз не станет их выгружать, а переиспользует для нового процесса. Переменные notes.ini кэшируются в так называемой шаред-памяти dll, т.е. все процессы, использующие эту dll будут видеть одни и те же значения. Поэтому если вы быстро перегрузите notes, то изменения произведённые в notes.ini не через сервисы Notes (которые пишут в кэш в шаред-памяти) в кэше не обновятся.
Чтобы быть уверенным - смотрите когда удалится процесс нотеса в TaskManager или пользуйте KillNotes.exe
 
Мы в соцсетях:

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