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

Вниз

Зависание клиентов   Найти похожие ветки 

 
Павел ©   (2005-10-19 19:09) [0]

есть БД и куча клиентов.

клиенты периодически виснут (в момент когда от БД пришел event), я так понимаю там какие то проблемы с транзакциями, вообщем расскажите как пишутся нормальные клиенты, основные принцыпы :)


 
Desdechado ©   (2005-10-19 19:32) [1]

основной принцип - события не использовать :)


 
Павел ©   (2005-10-19 19:37) [2]

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


 
Павел ©   (2005-10-19 22:11) [3]

посоветуйте чтонибудь полезное...


 
Zacho ©   (2005-10-20 00:21) [4]

Павел ©   (19.10.05 19:37) [2]
не, надо же как то клиентов оповещать об изменениях


В подавляющем большинстве случаев - не надо, и даже вредно.
А проблема у тебя скорее всего в компоненте, обрабатывающем ивенты. Попробуй какой-нибудь другой. Помниться, лет 5 назад самым безглючным считался SuperIBEventAlerter, сейчас - не знаю.
Ещё как вариант - клиентская библиотека от другой версии FB. Проверь.
Ну и конечно, могут быть баги у тебя в коде, но не видя твоего кода ничего сказать нельзя.


 
Soliton ©   (2005-10-24 21:50) [5]

Обращаю ваше внимание на необъяснимый эфект... клиент очень надежно зависает при попытке одновременного доступа через одно соединение нескольких желающих... виснет железно... Однозначно в многопоточном варианте (проверено)... причем по необъяснимым причинам от многопоточного зависания не спасает даже попытка создания дочерних соединений для каждого потока. Так что может все дело вовсе не в эвентах...


 
Zacho ©   (2005-10-25 06:20) [6]

Soliton ©   (24.10.05 21:50) [5]

IB-клиент (gds32.dll или fbclient.dll) не thread safe. Поэтому нужно или использовать объекты синхронизации в многопоточном приложении, или на каждый поток - своё подключение. Не знаю, почему у тебя виснет в случае отдельных подключений для каждого потока. У меня не виснет, и не у кого не виснет, что-то ты неправильно делаешь :)
Кстати, работать из нескольких потоков с одним подключением бессмысленно ещё и потому, что в контексте одного подключения все запросы всё равно будут выполняться последовательно, а не "паралельно", независимо от того, сколько потоков и транзакций. Для "паралельного" выполнения запросов нужно несколько коннектов.
Впрочем, всё это к ивентам не имеет никакого отношения :)


 
Anatoly Podgoretsky ©   (2005-10-25 09:06) [7]

Павел ©   (19.10.05 19:37) [2]
Не надо



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

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

Наверх




Память: 0.48 MB
Время: 0.07 c
9-1121895919
PathFinder
2005-07-21 01:45
2005.12.11
[PathFinder] Нужна функция поиска пути для плоскости


14-1132235339
Eugene_T
2005-11-17 16:48
2005.12.11
Установка Delphi 2005 Architect


2-1133129941
Eksell
2005-11-28 01:19
2005.12.11
Help


2-1132926394
Graf
2005-11-25 16:46
2005.12.11
Перехват разрешения экрана


11-1113242736
alex_s
2005-04-11 22:05
2005.12.11
добавление юнитов в форму