EVENTы в FireBird2CR1

Access Violation, некорректное выполнение запросов или вызовов API, ошибки утилит командной строки, в общем все, что вам мешает работать

Модераторы: kdv, dimitr

Ответить
Topaze
Сообщения: 3
Зарегистрирован: 15 май 2006, 07:33

EVENTы в FireBird2CR1

Сообщение Topaze » 15 май 2006, 07:44

Есть вполне работающая программа под Firebird 1.5. Написана на Delphi6 с использованием FibPlus5.2. В программе активно используются Eventы компонентом SIBfibEventAlerter. При переводе сервера БД на Firebird2CR1 после использования нескольких евентов начинаются какие-то баги, события начинают пропадать. Это что, баг FireBird2?

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 15 май 2006, 08:31

Возможно хотя и довольно маловероятно.
Ты бы "какие-то баги" описал поконкретнее... А еще лучше testcase какой-нибудь.

Topaze
Сообщения: 3
Зарегистрирован: 15 май 2006, 07:33

Сообщение Topaze » 15 май 2006, 08:51

Подробнее: на одном компе запускается два одинаковых приложения, в каждом из которых отображается один-и тот же набор записей из одной таблицы. При изменении записи (менятеся 1 единственное поле) приложение выполняет на сервере хранимую процедуры типа "POST_EVENT 'REFRESH'". В каждом клиентском приложение сидит обработчик данного события и при наступлении сего обновляет с сервера набор записей. Под FireBird1.5 никаких траблов не возникало, все работало четко и изумительно с 4-6 клиентами на разных машинах и также на одной машине при запуске нескольких экземпляров приложения.
После полной смены сервера БД на Firebird2, миграции базы путем Gbak-Restore, обновления клиентов, в приложениях событие ловиться 2-3 раза, после чего процесс ловли событий полностью прекращается. При выполнение процедуры POST_EVENT 'REFRESH' никакой ответной реакции со стороны клиентского приложения не наблюдается, событие просто уходит в никуда.

Topaze
Сообщения: 3
Зарегистрирован: 15 май 2006, 07:33

Сообщение Topaze » 15 май 2006, 09:34

После вдумчивого изучения Firebird 2.0 Release Notes выяснилось, что внесены изменения в Api FireBird (функция isc_que_events), так что думаю вопрос решен, нужно ждать выхода нового FibPlus с измененными под FireBird2 функциями. Приношу извинения за беспокойство.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 15 май 2006, 13:05

Изменения в API были чисто косметического характера (усилена типизация калбэка) и на двоичную совместимость никак повлиять не могли. Во всяком случае у меня Eventы работают как работали.

Ответить