Страница 1 из 1
EVENTы в FireBird2CR1
Добавлено: 15 май 2006, 07:44
Topaze
Есть вполне работающая программа под Firebird 1.5. Написана на Delphi6 с использованием FibPlus5.2. В программе активно используются Eventы компонентом SIBfibEventAlerter. При переводе сервера БД на Firebird2CR1 после использования нескольких евентов начинаются какие-то баги, события начинают пропадать. Это что, баг FireBird2?
Добавлено: 15 май 2006, 08:31
Dimitry Sibiryakov
Возможно хотя и довольно маловероятно.
Ты бы "какие-то баги" описал поконкретнее... А еще лучше testcase какой-нибудь.
Добавлено: 15 май 2006, 08:51
Topaze
Подробнее: на одном компе запускается два одинаковых приложения, в каждом из которых отображается один-и тот же набор записей из одной таблицы. При изменении записи (менятеся 1 единственное поле) приложение выполняет на сервере хранимую процедуры типа "POST_EVENT 'REFRESH'". В каждом клиентском приложение сидит обработчик данного события и при наступлении сего обновляет с сервера набор записей. Под FireBird1.5 никаких траблов не возникало, все работало четко и изумительно с 4-6 клиентами на разных машинах и также на одной машине при запуске нескольких экземпляров приложения.
После полной смены сервера БД на Firebird2, миграции базы путем Gbak-Restore, обновления клиентов, в приложениях событие ловиться 2-3 раза, после чего процесс ловли событий полностью прекращается. При выполнение процедуры POST_EVENT 'REFRESH' никакой ответной реакции со стороны клиентского приложения не наблюдается, событие просто уходит в никуда.
Добавлено: 15 май 2006, 09:34
Topaze
После вдумчивого изучения Firebird 2.0 Release Notes выяснилось, что внесены изменения в Api FireBird (функция isc_que_events), так что думаю вопрос решен, нужно ждать выхода нового FibPlus с измененными под FireBird2 функциями. Приношу извинения за беспокойство.
Добавлено: 15 май 2006, 13:05
Dimitry Sibiryakov
Изменения в API были чисто косметического характера (усилена типизация калбэка) и на двоичную совместимость никак повлиять не могли. Во всяком случае у меня Eventы работают как работали.