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

Вниз

Midas-DComConnection   Найти похожие ветки 

 
bkv   (2003-01-10 10:43) [0]

Недавно при написании сервера приложения MIDAS я столкнулся с проблемой: не как не хотел запускаться второй экземпляр клиента.
Использовал TDComConnection.
Первый экземпляр клиента запускается и производит соединения с Сервером автоматизации без проблем. Сервер автоматизации при первом обращении как положенно запускается- всё нормально.
Запускаю клиентское приложение еще раз- ошибка:
мол типа не уникальное имя в данном контексте, интерфейс не поддерживается. т.е Соединениу TDComConnection c сервером не происходит если сервер уже имеет хотябы одно активное соединение.
Причем буквально 20мин назад все работало Ок.
Повозившись, я обнаружил следующюю вещь: На сервере для доступа к БД я Использовал BDE - TDatabase. Так вот, если я компилирую сервер с TDatabase.Connected= true то к серверу подсоединяется не более 1 клиента, остальные попытки вызывают exception.
Если TDatabase не подключен к БД на этапе компилирования, то
все клиентские соединения проходят без проблем.
В чем тут дело я так и не понял.
Кто-нибудь сталкивался с такой ситуацией?


 
OlegE ©   (2003-01-10 10:51) [1]

Нужно использовать TSession.


 
Romkin ©   (2003-01-10 10:57) [2]

Если модель потоков сервера не tmSingle, в каждом TRemoteDataModule должны находится TSession & TDatabase, причем у TSession AutoSessionName должно быть True.
Связано это с тем, что на каждое клиентское соединение создается свой экземпляр модуля данных, и в отдельном потоке.
При этом BDE не потокобезопасна, разделение по потокам должно обеспечиваться с помощью TSession, и AutoSessionName просто обеспечивает уникальные имена сессий (SessionName), блокировки проводятся именно по ним
PS Developers Guide рекомендую все-таки почитать


 
bkv   (2003-01-10 11:04) [3]

Понятно, спасибо.
И еще вопрос:
Что лучше использовать для MIDAS : BDE, ADO или dbExpress?


 
Romkin ©   (2003-01-10 11:33) [4]

А это ему пофиг :-)) разница, в том, что иногда приходится выбирать между значениями ResolveToDataset
BDE - Это немного устарело уже, да и громоздко
ADO - необходимо ставить при поставке (так же, как BDE)
dbExpress - новая технология, причем приспособленная именно к MIDAS, обычно работа идет через TClientDataSet. Легко ставится - 3 dll зарегистрировать через regsvr32, что обычно любой инсталлятор может.
А так - все зависит от того, к какой БД подсоединяешься, и от личных пристрастий.
Переходить тоже достаточно легко на разные соединения, правда, особенности тоже есть



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

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

Наверх




Память: 0.48 MB
Время: 0.01 c
6-87005
snoup
2002-12-01 00:21
2003.01.27
Пожалуйста скажите, ко-нибудь когда-нибудь организовывал WHoIS на


1-86939
Олег
2003-01-16 19:11
2003.01.27
кнопки в стиле Win XP


1-86862
diks
2003-01-20 00:43
2003.01.27
Пассворд


6-87015
Свой
2002-11-25 21:32
2003.01.27
TidSMTPServer


3-86690
Samsonov Yuric
2003-01-04 11:02
2003.01.27
Помогите разобраться с кодировкой BDE