![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Есть подозрение, что многопоточность BDE, IBX - миф. [D6, IB6.x]
борисыч © (2002-04-18 07:50:00)Пишу удаленный сервер ciMultiInstance, tmApartment. Все хорошо, пока не запускаются СРАЗУ НЕСКОЛЬКО КЛИЕНТОВ. И сервер, и клиенты виснут. Коннект к БД через BDE или IBX. TSession, TDatabase, TIBDatabase, TIBTransactions в каждом потоке, AutoSessionName - все учтено. Синхронизировал отдельно и вместе коннекты к БД и открытие н.д. в отдельном потоке (чтобы открытие н.д. в TDataSetProvider засинхронизировать, перекрыл SetActive во всех возможных н.д. и открывал/закрывал в отдельном потоке
с синхронизацией). И в критические секции оборачивал. Решил, что отупел. Вспотел.
Сделал desktop-app. Коннекты тоже через BDE, IBX. Здесь проще, т.к. можно засинхронизировать и коннекты, и открытия н.д. Получилось, но нужен удаленный сервер. Вспотел.
И обнаружил \Delphi6\Demos\Db\IBX\ThreadedIBX\ThreadedQuery.dpr.
Убедился, что все делаю правильно. Но кто писал dpr - не пробовал, видимо, несколько раз быстро нажать на кнопку. Попробуйте, плиз. Иначе придется выстраивать клиентов в очередь, а это уже фактически tmSingle или ciSingleInstance...
Alexandr (2002-04-18 08:23:00) [1]дык, измени в ApplicationServer строку подключения на сетевую localHost. Будет лучше. С локальным принципиально не будет работать.
борисыч (2002-04-18 08:15:00) [2]Сервер IB у меня, я локально, но с других машин ко мне такая же картина
борисыч (2002-04-18 08:12:00) [3]локальный
Alexandr (2002-04-18 08:09:00) [4]не понял про общество.
Как подключаешься в серверу Interbase? Параметры подключения.
Не локальный коннект, случайно?
борисыч (2002-04-18 08:00:00) [5]Не понял, о какой строке речь. Первый раз в обществе
Alexandr (2002-04-18 07:57:00) [6]Строка коннекта какая?