Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Неприятности с IdHTTPServer-ом [D7]


N ©   (2006-06-26 16:45:00) 

Есть сервер IdHTTPServer, в ответ на запросы из IE он выбирает информацию из mySQL-ой базы и возвращает назад в браузер в виде html. Но тут получилась такая неприятность: при обращении примерно одновременно нескольких человек к серверу информация не выдается, и так дальше продолжается до тех пор, пока сервер не перезапустишь. Мне кажется, что дело тут в сессиях, но вот каким образом это организовать чего-то не догоняю. Большая просьба подсказать что-нибудь по этому поводу.


N   (2006-06-27 10:03:00) [1]

О, огромное спасибо! Вы мне действительно очень помогли ))


Slym   (2006-06-27 09:44:00) [2]

OnCommandGET - уже отдельный поток
в нем (псевдокод) (1клиент в 1соединение)

ZConnection.Create();
try
 Настройка соединения
 ZQuery.Create();
 try
   ZQuery.Connection:=ZConnection;
   работаем....
 finally
   ZQuery.Free;
 end;
finally
 ZConnection.Free;
end;


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

с заранее созданный CriticalSection:TCriticalSection; (syncobj)
в OnCommandGET
CriticalSection.Enter;
try
 работаем с заранее созданным единственным ZQuery....
finally
 CriticalSection.Leave;
end;


N   (2006-06-27 08:32:00) [3]

Спасибо, честно говоря, надеялась, что вы ответите. А как же теперь это все организовать-то? Я Zeos использую для доступа к базе. Во время выполнения создавать для каждого нового запроса поток и отдельные экземпляры ZConnection и ZQuery?


Slym   (2006-06-27 04:34:00) [4]

Многопоточность и синхронизация
100% у тебя 1 подключение к базе для нескольких клиентов, можно и так при соблюдении синхронизации (не рекомендую). лучше 1 клиент 1 соединение к базе. или N клиентов - пул из M коннектов к базе


Наверх

Титульная страница Поиск, карта сайта Написать письмо