Текущий архив: 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.46 MB
Время: 0.042 c