Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Технологии
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.02.2009, 10:08
Zhaw Zhaw вне форума
Прохожий
 
Регистрация: 24.02.2009
Сообщения: 1
Репутация: 10
Вопрос Вопрос по MIDAS приложению

Ситуация:
Имеется трехзвенное приложение доступа к БД (вопрос НЕ про БД).
Клиентов много - подключаются к серверу приложений на удаленной машине (в пределах локалки).
Подключение через сокет-сервер (стандартный scktsrvr.exe).
На стороне клиента: TSocketConnection
На сервере приложений: Remote Data Module (как обычно везде в примерах).
При подключении пользователя производится запрос в БД - извлекаются некоторые данные (НЕ таблица) - и
прям в функции подключения возвращаются пользователю. -- upd. Аналогичная проблема и без обращения к БД вообще - проверено.
Проблема:
При одновременном подключении ДЕСЯТОГО (именно ДЕСЯТОГО - проверено) пользователя - сервер приложений подвисает - ДО вызова процедуры подключения в сервере приложений. Первые ДЕВЯТЬ пользователей при этом ничего кроме подключения не делают. Если сервер приложений перегрузить - то первые девять пользователей отключатся - а этот десятый - автоматически подключится и будет работать как ни в чем не бывало. В момент зависания - в списке scktsrvr.exe (есть там список - кто через него подключен) указаны ВСЕ 10 пользователей.
Хотя бы посоветуйте - где можно копать??
UPD: Есть подозрение, что проблема в сокет сервере .. там было установлено "10 подключений"... но - переставил на 100 - а все равно на 10-м виснет
Ответить с цитированием
  #2  
Старый 24.02.2009, 13:20
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Была похожая проблема с тем же составом (scktsrvr.exe, midas.dll и пр.).
Но только похожая: после 35-коннекта к серверу-приложению все коннекты сбрасывались. Проблему удалось решить переустановкой ОС сервера и, насколько помню, был установлен какой-то другой Win сервер. Сейчас уже больше полугода все 52 коннекта работают без сбоев (жалоб нет). Хотя, конечно, в каждом конкретном случае может быть чего угодно.
На штатный борландовский scktsrvr.exe грешить не приходится - работает нормально. А "10 подключений" - это не подключения, а Thread Caching, что само по себе не является количеством подключений.
Если сервер приложение - это COM сервер, то при создании экземпляра сервера (TComponentFactory.Create) лучше применять значение "ciSingleInstance", тогда сервер работает намного стабильнее (хотя, конечно, это не всегда приемлемо).
__________________
Не забывайте делать резервные копии
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:23.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter