|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
|  | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  Вопрос по MIDAS приложению Ситуация: Имеется трехзвенное приложение доступа к БД (вопрос НЕ про БД). Клиентов много - подключаются к серверу приложений на удаленной машине (в пределах локалки). Подключение через сокет-сервер (стандартный scktsrvr.exe). На стороне клиента: TSocketConnection На сервере приложений: Remote Data Module (как обычно везде в примерах). При подключении пользователя производится запрос в БД - извлекаются некоторые данные (НЕ таблица) - и прям в функции подключения возвращаются пользователю. -- upd. Аналогичная проблема и без обращения к БД вообще - проверено. Проблема: При одновременном подключении ДЕСЯТОГО (именно ДЕСЯТОГО - проверено) пользователя - сервер приложений подвисает - ДО вызова процедуры подключения в сервере приложений. Первые ДЕВЯТЬ пользователей при этом ничего кроме подключения не делают. Если сервер приложений перегрузить - то первые девять пользователей отключатся - а этот десятый - автоматически подключится и будет работать как ни в чем не бывало. В момент зависания - в списке scktsrvr.exe (есть там список - кто через него подключен) указаны ВСЕ 10 пользователей. Хотя бы посоветуйте - где можно копать?? UPD: Есть подозрение, что проблема в сокет сервере .. там было установлено "10 подключений"... но - переставил на 100 - а все равно на 10-м виснет | 
| 
			 
			#2  
			
			
			
			
		 | |||
| 
 | |||
|   Была похожая проблема с тем же составом (scktsrvr.exe, midas.dll и пр.). Но только похожая: после 35-коннекта к серверу-приложению все коннекты сбрасывались. Проблему удалось решить переустановкой ОС сервера и, насколько помню, был установлен какой-то другой Win сервер. Сейчас уже больше полугода все 52 коннекта работают без сбоев (жалоб нет). Хотя, конечно, в каждом конкретном случае может быть чего угодно. На штатный борландовский scktsrvr.exe грешить не приходится - работает нормально. А "10 подключений" - это не подключения, а Thread Caching, что само по себе не является количеством подключений. Если сервер приложение - это COM сервер, то при создании экземпляра сервера (TComponentFactory.Create) лучше применять значение "ciSingleInstance", тогда сервер работает намного стабильнее (хотя, конечно, это не всегда приемлемо). |