Главная страница
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.038 c
2-1132644365
DDDeN
2005-11-22 10:26
2005.12.11
Получение HTML со страницы


2-1132674645
Balex
2005-11-22 18:50
2005.12.11
String => PAnsiChar


2-1132944808
Бандерас
2005-11-25 21:53
2005.12.11
Обычная задачка


2-1132558051
B@BY
2005-11-21 10:27
2005.12.11
Базы данных - MS Access


14-1131958924
Юрий Зотов
2005-11-14 12:02
2005.12.11
Чемпионат сайта по бильярду