Session.Timeout
От: MentalSky  
Дата: 30.01.03 14:39
Оценка: 3 (1) +1
Привет всем!

Такая у меня задача:

Есть у меня AppServer, в виде фасадного объекта (COM+ сервер) и библиотек к нему (COM+). Из этих компонент производится доступ к БД. По ряду причин было сделано, что бы логин юзверя к БД хранился в фасадном объекте — что бы не светить его особо по сети. Т.е. пока у юзверя открыта софтина — инстанс фасадного объекта существует, как юзвер прогу закрыл — фасадный объект уничтожился — в разрез с идеей JIT, но так как в этом оъекте ничего не делается — потери ресурсов незаметные.

Так вот, сейчас пишу Web-интерфейс, и встала такая проблема — я думал что храня fcd (получаю его через Set fcd = CreateObject("bla.bla") ) в Session объекте — я получу тоже что указал в начале постинга. ан нет. Вроде как только сессию будет закрыта — после таймаута — фасадный объект должен уничтожиться. Вроде и таймаут поставил в минутут и abandone делал для проверки — все тщетно... В сессию помещая фасадный объект так:

Set Session("fcd") = fcd

настройки проекта и сайта правильные...

Подскажите, где я глуплю???
Re: Session.Timeout
От: MentalSky  
Дата: 30.01.03 15:02
Оценка:
Только что проверил — сессия закрывается как надо... но когда я делаю Set Session("fcd") = Nothing — объект не уничтожается... почему??? получается ему не делают Release()... или оно где то кешируется, что вернее всего...
Re[2]: Session.Timeout
От: DOOM Россия  
Дата: 31.01.03 05:10
Оценка:
Здравствуйте, MentalSky, Вы писали:

MS>Только что проверил — сессия закрывается как надо... но когда я делаю Set Session("fcd") = Nothing — объект не уничтожается... почему??? получается ему не делают Release()... или оно где то кешируется, что вернее всего...


А явно его убить в Session_OnEnd пробовал? В смысле вызвать какой-нибудь Close или что-то в этом духе.
Re[2]: Session.Timeout
От: TK Лес кывт.рф
Дата: 31.01.03 05:39
Оценка:
Здравствуйте, MentalSky, Вы писали:

MS>Только что проверил — сессия закрывается как надо... но когда я делаю Set Session("fcd") = Nothing — объект не уничтожается... почему??? получается ему не делают Release()... или оно где то кешируется, что вернее всего...


Если это COM+ объект, то он может просто вернуться в пул
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[3]: Session.Timeout
От: MentalSky  
Дата: 31.01.03 06:58
Оценка:
DOO>А явно его убить в Session_OnEnd пробовал? В смысле вызвать какой-нибудь Close или что-то в этом духе.

Так я так и делаю через Set Session("fcd") = Nothing
Причием вот что — если я делаю Set Session("fcd") = Nothing в том же участке кода где и создаю объект (при открытии asp-страницы) то все ок... а вот в любом другом месте — не работает. Говорят есть такая проблема и связано это с кешированием.
Re[3]: Session.Timeout
От: MentalSky  
Дата: 31.01.03 06:59
Оценка:
Здравствуйте, TK, Вы писали:

TK>Если это COM+ объект, то он может просто вернуться в пул


Это COM+ но у него CanBePooled=false, так что это отпадает.
Re[4]: Session.Timeout
От: garik108  
Дата: 08.11.03 05:16
Оценка:
У меня такая же проблемма.

DOO>>А явно его убить в Session_OnEnd пробовал?

DOO>>В смысле вызвать какой-нибудь Close или что-то в этом духе.
Хорошая идея. Если объект не уничтожается — надо попробовать
в Session_OnEnd вызвать что-то типа SelfDestroy и освободить ресурсы.

MS>Говорят есть такая проблема и связано это с кешированием.

Это как-то настраивается? Можно вырубить это чрезмерное кэширование?
Где про это почитать??
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.