Форум: "Начинающим";
Текущий архив: 2012.02.19;
Скачать: [xml.tar.bz2];
ВнизОпределение прервавшегося коннекта Найти похожие ветки
← →
Laguna © (2011-11-09 12:01) [0]Ситуация такая. БД находится на выделенном сервере. Разные пользователи подключаются к БД. Чтобы отследить кто работает в данный момент, из каждой программы пользователя делаю запись в некий dat- файл, расположенный на сервере на onCreate формы(во время открытия таблиц), говорящей о том, что конкретный пользователь работает. На onDestroy соответственно запись из dat-файла удаляю. Подозрение возникло в момент, когда якобы на связи находился долго один из пользователей. Зайдя на сервер по открытым файлам смотрю - все чисто, а запись в dat-файле осталась висеть. Получается, что у пользователя не отработало корректное закрытие формы(завис и т.д.). Каким образом сделать так, чтобы такие ситуации как то отлавливались? В данном случае Сервер - это просто хранилище файлов с расшаренным ресурсом.
← →
clickmaker © (2011-11-09 12:23) [1]а почему в dat-файл, а не в БД?
> Каким образом сделать так, чтобы такие ситуации как то отлавливались?
>
фиксировать время последней активности юзера, периодически проверять и рубить неактивные в течение какого-то времени сессии
← →
Ega23 © (2011-11-09 12:48) [2]
> Каким образом сделать так, чтобы такие ситуации как то отлавливались?
Так, как это сделано, например, в PHP.
На сервер приходит некий запрос. Смотрим, есть ли в параметрах запроса SID (SessionID).
Если нет - создаём этот SID, выставляем ему время жизни (Now + timeout, например полчаса), заносим в список активных сессий.
Если есть - ищем этот SID в списке активных сессий. Если его уже нет - отказ от обработки запроса. Если он ещё есть - реинициализируем его время жизни.
Отдельно на сервере мониторим список активных сессий. Если нашлась какая-то, у которой время жизни < Now, то её выкидываем.
Если всё делать правильно, то задача не такая уж и тривиальная, надо аккуратно всё по потокам расписать.
← →
Медвежонок Пятачок © (2011-11-09 13:03) [3]Чтобы отследить кто работает в данный момент
Зачем?
← →
Laguna © (2011-11-09 13:21) [4]Сервер(ADS Local) выставляет ограничение на одновременное соединение 5 польз. Вот и нужно следить за рациональным использованием ресурса. Да сервер я описал выступает ка обычное хранилище, а не полноправный SQL-сервер. Касаемо сесий, то что то я ничеко для ADS не нашел. Там что то упоминалось, мол если работаем через BDE, а так ничего другого не нашел.
← →
Медвежонок Пятачок © (2011-11-09 13:33) [5]классическая иллюстрация
объективно стоит задача А
программист решает не ее а задачу Б
при этом пишет код, алгоритм которого ни к А ни к Б отношения не имеет.
← →
Ega23 © (2011-11-09 13:36) [6]
> Сервер(ADS Local) выставляет ограничение на одновременное
> соединение 5 польз.
Одновременное соединение 5 пользователей, или одновременное обслуживание не более пяти коннектов к БД? Это разные вещи.
← →
Медвежонок Пятачок © (2011-11-09 13:37) [7]если надо "следить за рационалным использованием", то это подразумевает, что у тебя уже есть "рациональное использование" и ты за ним следишь.
вопрос: зачем следить за тем, что рационально?
чтобы что-то изменить в уже рациональном использовании ресурса?
← →
Медвежонок Пятачок © (2011-11-09 13:42) [8]Допустим, что ты успешно поборол эффект оборвавшегося коннекта и в дат файле у тебя все зашибись логируется невзирая ни на что.
что ты в нем увидишь?
ты в нем увидишь, что внутри файла никогда не бывает больше пяти юзеров одновременно.
Так их на сервере и так по любому не бывает больше пятерых одновременно потому что Сервер(ADS Local) выставляет ограничение на одновременное соединение 5 польз.
← →
Laguna © (2011-11-09 13:56) [9]
> Одновременное соединение 5 пользователей, или одновременное
> обслуживание не более пяти коннектов к БД? Это разные вещи.
>
Если быть точнее, то не более 5 чел. могут открыть таблицу одновременно.
> Медвежонок Пятачок © (09.11.11 13:42) [8]
хм.. все так. Функция просмотра законнектившихся по идее подключена у контролирующего пользователя. Обрубил на корню... Я прям уже и забыл что хотел спросить... Короче "контролер" тоже пользуется теми же таблицами. Он посмотрит кто на связи и в каком подразделе. Подразделов 2 , в каждом из которых открываются свои таблицы. Если в первом разделе доступ закрыт(он посмотрел), то попытается войти во второй, если там меньше 5 чел. Скорее всего задача главнее должна отлавливать зависшие коннекты.
← →
Ega23 © (2011-11-09 14:10) [10]
> Если быть точнее, то не более 5 чел. могут открыть таблицу
> одновременно.
Я из программы, залогинившись, могу открыть десять тредов, каждый с персональным коннектом.
Я могу написать AppServer, к которому будет коннектится стопицот пользователей, а он сам будет иметь всего один коннект к БД.
← →
Sergey13 © (2011-11-09 14:49) [11]Чем уж так хорош этот ADS Local, что ради него стоит терпеть такой геморрой?
← →
Laguna © (2011-11-09 15:05) [12]
> Чем уж так хорош этот ADS Local, что ради него стоит терпеть
> такой геморрой?
Ну почему геморой? Когда отошел от BDE много СУБД пробовал. ADS больше всех понравился. Так и подружились. Не было бы проблем, если бы организация официально купила нормальную полную версию.
← →
Медвежонок Пятачок © (2011-11-09 15:11) [13]тем более что нормальная полная версия на целых пять коннектов
← →
Laguna © (2011-11-09 16:35) [14]
> Медвежонок Пятачок © (09.11.11 15:11) [13]
> тем более что нормальная полная версия на целых пять коннектов
Молодец, круто подметил. Возьми орден на полочке.
← →
RWolf © (2011-11-09 16:40) [15]мне вот тоже интересно стало, чем этот ADS лучше, скажем, MSSQL или Firebird? я просто это название впервые слышу.
← →
Anatoly Podgoretsky © (2011-11-09 17:12) [16]
> Laguna © (09.11.11 13:21) [4]
Может надо заплатить?
← →
Anatoly Podgoretsky © (2011-11-09 17:13) [17]
> Если быть точнее, то не более 5 чел. могут открыть таблицу
> одновременно.
Они не дерутся за клавиатуру?
← →
Anatoly Podgoretsky © (2011-11-09 17:16) [18]Между прочим полноценный, бесплатный MS SQL Server Espress поддерживает 32000 коннектов
← →
Laguna © (2011-11-09 17:32) [19]
> Между прочим полноценный, бесплатный MS SQL Server Espress
> поддерживает 32000 коннектов
Не спорю, было как то и с MSSQL сталкивался. Но там свой гемор. Клиенты для обслужтвания базы тоже денег стоят :). ДА и если весь проет сейчас переводить на MSSQL, то нужно переписвать все, компоненты связующие менять и т.д. Может на следующем проекте стоит подумать заранее об использовании MSSQL.
> Может надо заплатить?
Это был бы лучший вариант, однако время сейчас тяжелое...
← →
Anatoly Podgoretsky © (2011-11-09 17:46) [20]Клиент обслуживания стоит 0 баксов.
Правильно не надо переводить, лучше помучиться с 5 коннектами.
← →
Laguna © (2011-11-09 17:50) [21]
> Anatoly Podgoretsky © (09.11.11 17:46) [20]
> Клиент обслуживания стоит 0 баксов.Правильно не надо переводить,
> лучше помучиться с 5 коннектами.
Можно узнать имя клиента?
Я юзал MSDE Manager 5 триальный. Работает, но постоянно триальные метки сносить нужно. Был еще один какой то но потерялся
← →
Anatoly Podgoretsky © (2011-11-09 17:53) [22]ssms можно загрузить отдельно, а можно в комплекте все три загрузки.
Вот MSDE штатного клиента не имел, но есть куча бесплатных.
← →
Laguna © (2011-11-09 17:59) [23]ssms - это что?
← →
Плохиш © (2011-11-09 20:13) [24]Manager уже больше 2х лет в поставке MS SQL Server Express идёт.
← →
Ega23 © (2011-11-09 20:16) [25]
> Manager уже больше 2х лет в поставке MS SQL Server Express
> идёт.
ЕМНИП, с 2005 года
← →
Плохиш © (2011-11-09 20:23) [26]
> Sergey13 © (09.11.11 14:49) [11]
>
> Чем уж так хорош этот ADS Local, что ради него стоит терпеть
> такой геморрой?
Тем, что bde ставить не нужно. А чтобы не иметь геморроя надо просто использовать инструмент по описанному назначению.
Если к жигулям плуг прикрепить, пахать всё-равно будет большой геморрой :-)
← →
Плохиш © (2011-11-09 20:29) [27]
> Ega23 © (09.11.11 20:16) [25]
Ты точно про Express говоришь? В первой инсталлации 2008 ещё не было, на форумах много слёз было пролито о поиске отдельно менеджера.
← →
Ega23 © (2011-11-09 20:48) [28]
> В первой инсталлации 2008 ещё не было
так 2005 же вроде как был?
← →
Dennis I. Komarov © (2011-11-09 21:22) [29]
> так 2005 же вроде как был?
Он не в комплекте, но загрузить отдельно можно...
← →
Anatoly Podgoretsky © (2011-11-09 22:02) [30]
> Плохиш © (09.11.11 20:29) [27]
>
> > Ega23 © (09.11.11 20:16) [25]
>
> Ты точно про Express говоришь? В первой инсталлации 2008
> ещё не было, на форумах много слёз было пролито о поиске
> отдельно менеджера.
Люди просто не умеют скачивать, качают тот дистрибутив, который меньше, вот потом и льют слезы.
← →
Anatoly Podgoretsky © (2011-11-09 22:02) [31]
> ssms - это что?
Это то что ты спрашивал.
← →
Laguna © (2011-11-10 00:31) [32]Я понял, уже погуглил.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2012.02.19;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.004 c