Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.16;
Скачать: CL | DM;

Вниз

Неопознаная ошибка   Найти похожие ветки 

 
r.o.o.t ©   (2007-08-22 18:09) [0]

Господа вот такой вопрос у меня возникла проблемма

У меня трех звенная база данных на MIDAS работает через SocketConnection база MS Access  при подключении пользователей и вызове удаленных методов по записи или чтению в базу данных на SQL все работает нормально но при достижении 65-77 или более пользователей вновь подключенные пользователи немогут обращатся к базе т.е. открывать таблицы выполнять запросы но спокойно могут выполнять методы в которых нереализованно обращение к базе, хотя старые пользователи могут спокойно без ошибок обращатся к базе.

Обибка имеет вид "неопознаная ошибка"


 
r.o.o.t ©   (2007-08-22 18:10) [1]

что может быть??


 
Вася Правильный   (2007-08-22 19:41) [2]


> база MS Access
> при достижении 65-77 или более пользователей

и это еще живет?!! радуйся, оно даже на столько не рассчитано


 
R.O.O.T ©   (2007-08-22 21:32) [3]

Неверно
База MS Access расчитанна на 255 активных сессий
темболее запросы в базу не сильно ресурсоемкие
кто нибудь прояснит более подробно?


 
sniknik ©   (2007-08-22 23:18) [4]

Access и его сессии тут могут быть и ни причем, вообще. а ограничение по какимто другим ресурсам, они то не бесконечные...
попробуй например запустить любую другую программу 255 раз... удалось? тогда возьми посложнее и поресурсоемкее потому как ты видимо "hello word!" запускал.

а у тебя модуль данных это считай приложение(процесс) для каждого клиента (или поток, в зависимости от Instancing в фабрике класса).
кстати можно попробовать поменять, это и еще ThreadingModel, посмотреть что выгоднее и подходит под задачу. может запустишь больше 77.


 
Sergey13 ©   (2007-08-23 08:54) [5]

> [0] r.o.o.t ©   (22.08.07 18:09)

А к аксесу чем цепляешься?

> но при достижении 65-77

вроде помнится в БДЕ было похожее ограничение.


 
sniknik ©   (2007-08-23 09:12) [6]

> вроде помнится в БДЕ было похожее ограничение.
ограничение будет везде, даже вообще без баз...

сделай пример, и попробуй по запускать разные программы
procedure TForm1.Button1Click(Sender: TObject);
var
 i, Er: integer;
begin
 for i:= 1 to 255 do begin
   Er:= WinExec("Project2.exe", SW_SHOWNORMAL);
   if Er < 32 then begin
     Label2.Caption:= IntToStr(Er);
     Application.ProcessMessages;
     Break;
   end;
   Label1.Caption:= IntToStr(StrToIntDef(Label1.Caption, 0)+1);
   Application.ProcessMessages;
 end;  
end;

у меня так просто пустая форма запустилась 194 раза (если считать запущенное, а не просто вызов который и проигнорироваться может (в конце цикла особенно))
чуть посложнее (для написания а не по тому что там участвует) с 1м коннектом датасетом, гридом, и запросом возвращающим пару строк уже только 130 раз.
и т.д. более сложная меньше количество. чегото там хватает хендлов например...

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


 
sniknik ©   (2007-08-23 09:13) [7]

> там хватает
там не хватает


 
Сергей М. ©   (2007-08-23 09:27) [8]


> R.O.O.T ©   (22.08.07 21:32) [3]
> База MS Access расчитанна на 255 активных сессий


Это где ты такое увидел ?
Сессиями "заправляет" не база, а СУБД.

Да и держать активными (открытыми) все сессии без явно выраженной необходимости тоже нет никакого резона.


 
r.o.o.t ©   (2007-08-23 10:13) [9]

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


 
Сергей М. ©   (2007-08-23 10:20) [10]


> любые обращения к базе сопровождаютсятакой ошибкой
>


А как она выглядит на стороне MIDAS-сервера ?


 
sniknik ©   (2007-08-23 11:16) [11]

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

во проверили [6]? чего получается?

+ сделай пример аналогичный 6, только не для программ(процессов) а для потоков, в каждом потоке создавай по собственному датамодулю со всем что у тебя там есть из программы, к базе коннект не делай, а просто "наштампуй" такое количество потоков с ним.
это будет второй вариант модели COM, проверка, примерно тоже что происходит при модели "апартмент".
гарантирую не получится.
да, поток нужно проверять что рабочий/датамодуль создался, ну типа переменную на нем завести, или лучше ADODataSet.Tag использовать, инкрементировать и выдавать на главную форму для каждого потока...
а потом проверить метод этого потока, ну типа чтото, что не обращаясь к данным просто например возращает случайное значение (вот это скорее всего будет работать).

p.s. хотя ладно, хочешь искать "где светлее", флаг тебе в руки!


 
r.o.o.t ©   (2007-08-23 11:45) [12]

короче дело такое

сэмулировал работу сервака подклбчил 1200 пользователй вызвал процедуры удаленные + одному SQL запросу в базу все работает(нодолго)
дальше освободил сервер переписал клиента запустил и попытался открыть по одной таблице на 64ом подключении все начило сбоить и появилась "Неопознаная ошибка"
Клиенты подключались дальше но таблицы уже открыть немогли
где рыть дальше???
Я так панимаю сущесвует пределное число открытия таблиц или еще чегонить


 
Вася Правильный   (2007-08-23 13:13) [13]


> Клиенты подключались дальше но таблицы уже открыть немогли

что понимается под открытием таблицы?
попробуй select * from tbl where 1=0



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

Текущий архив: 2007.09.16;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.031 c
15-1186125405
palva
2007-08-03 11:16
2007.09.16
хороший ученый не может быть верующим человеком


15-1187241020
Sonia
2007-08-16 09:10
2007.09.16
У меня просто нет слов...


15-1187609713
AZIZE
2007-08-20 15:35
2007.09.16
ВОПРОС-ОПРОС. ОБРАЗОВАНИЕ


2-1187607571
Arks
2007-08-20 14:59
2007.09.16
Как клонировать vcl-объект?


15-1187353731
Megabyte
2007-08-17 16:28
2007.09.16
Компоненты JCL с Torry