Из программы успешно соединяюсь с базой с правами DBA. Вызываю хранимую процедуру. Процедура успешно отрабатывает и посылает программе сообщение POST_EVENT 'refresh';
В программе IBEvents подписан на событие refresh, свойство AutoRegister=true, обработчик IBEvents.OnEventAlert настроен. Обработчик события не отрабатывает вообще, точка останова в обработчике не срабатывает. Что предпринималось для выявления ошибки: 1. в хранимую процедуру вставлялся insert current_timestamp into test_table. Процедура отрабатывает, в тестовой таблице появляются новые записи.
2. В процедуре оставлен только код отсылки события, чтобы исключить влияние кода процедуры на отсылку события.
3. Отключен файрвол. Пробовал соединяться с базой по IP, по IP localhost, локально с указанием полного пути к базе.
4. Вместо авторегистрации событий делал принудительную регистрацию после соединения с базой IBEvents.RegisterEvents
5. Компилировалось с родными компонентами IBX в Embarcadero XE7 и второй вариант с родными IBX в Delphi 7.
Почему не срабатывает обработчик событий?
Евенты шлются через отдельное соединение, видимо его не пустил брандмауэр/фаервол .
В конфиге C:\Program Files\Firebird\Firebird_<версия FB>\firebird.conf необходимо снять комментарий со строки:
#RemoteAuxPort = 0 и указать фиксированный номер порта
и открыть этот порт для подключения