Вниз
Скачать: CL | DM;

Закрытие сессии по IdleTime   Найти похожие ветки 

← →
boa ©   (2003-02-12 08:55) [0]

Проблемма: Если клиент N-ное время не работает с приложением то сервер по истечению IdleTime закрывает сессию. Если после закрытия сессии закрывать приложение, то естественно сыпется куча ошибок.
Требуется: Нужно автоматически закрывать приложение перед тем как отработает IdleTime.
Вопрос: Как узнать время последнего обращения клиента к серверу (IdleTime естественно известен)? Или кто подскажет как вообще решается эта проблемма (ни разу не встречал вопрос по этой теме, хотя он меня давно уже интересует)
Info: Для работы с базой использую DAO. Смотрел сырцы, так и не нашел за что зацепиться.
PS: HOOKи не предлагать, т.к. это не есть обращение к базе данных.


← →
boa ©   (2003-02-12 08:57) [1]

Вообще-то ставил галочку на "Oracle", но почему-то в заголовке не высветилось!


← →
jocko   (2003-02-12 09:56) [2]

закрывать не надо, надо переконнектиться, (такой вопрос с АДО недавно обсуждался) похоже вариант один - ловить код ошибки от провайдера, каким бы он не был (провайдер), и восстанавливать содедиение, сервер не сообщает клиенту, что он его выгрузил (геморой одним словом).


← →
boa ©   (2003-02-12 12:43) [3]

А зачем мне переконнекчиваться если юзер не работает.?! Мне как раз нужно корректро освободить ресурс.


← →
jocko   (2003-02-12 13:34) [4]

из опыта: (MS SQL) при сильной загрузке сервера, этот промежуток может быть очень небольшим, т.е пользователь задумался... и отвалился - лучше переконнектиться, можно молча, можно с диалогом,
В любом случае, раньше чем пошлешь запрос, точнее получишь ответ, о том что отвалился не узнаешь

Хотя может я не прав АУ!!! может все-таки есть варианты

и еще
>Мне как раз нужно корректро освободить ресурс
так ведь никто вроде и не занят


← →
boa ©   (2003-02-12 15:37) [5]

Проблеммы с сильной заргузкой сервера у нас нет.
Я знаю, что у узера через 30 минут после последнего обращения к базе коннекта не будет.
На счет освобождения ресурса я неправильно выразился.
Ресурс на сервере и так (через 30 мин.) освободится а вот дальнейшая работа приложения вызывает сочуствие. И вообще зачем программе висеть в состоянии ожидания чего-то такое продолжительное время? Если юзер забыл закрыть прогу, то хотелось бы сделать это за него программно.




← →
jocko   (2003-02-12 15:52) [6]

Тогда повесь таймер и запускай после каждого выполнения запроса прошло полчаса - закрыл приложение, если коннекция одна, то вообще все просто, да какую нибудь настроечку к нему в реестр...

хотя вообще-то дикость, сам не знаю зачем написал


← →
boa ©   (2003-02-12 16:35) [7]

Остается одно - делать HOOK на клаву/мышь и выполнять левый запрос к базе (или даже проверку на соединение) и от этого времени вести отсчет. Тоже дикость, но пока альтернотивы не вижу.
СПАСИБО! что откликнулся и не оставил меня в полном одиночестве (хотя может кто-нибудь еще и выскажет свое мнение).



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.021 c
14-5780
SergeN
2003-02-12 12:30
2003.03.03
Delphi


3-5463
E_Dimon
2003-02-11 16:51
2003.03.03
Master-Detail


4-5914
Kokopelli
2003-01-14 13:19
2003.03.03
Имя текущего каталога


3-5446
StenKz
2003-02-13 15:23
2003.03.03
Как сделать, чтобы внесённые изменения не кэшировались...


1-5523
Chubais
2003-02-19 13:20
2003.03.03
Сообщения об ошибках




   Наверх