Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FireDAC TFDEventAlerter / 12 сообщений из 12, страница 1 из 1
04.05.2020, 21:27
    #39954187
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC TFDEventAlerter
Как можно узнать что TFDEventAlerter подключён к БД и получает события?
Потому что никаких ошибок он не выдаёт, если не может подключиться. .Active = True в любом случае.
Как узнать в рантайме, удалось ему подключиться или нет?
...
Рейтинг: 0 / 0
04.05.2020, 23:49
    #39954219
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC TFDEventAlerter
Плюс возникла ещё одна проблема: если при подключении к базе данных (Firebird) TFDEventAlerter не может подключиться к СУБД (например, все порты, кроме 3050, закрыты файрволом), то при отключении от базы данных всё приложение виснет в момент автоматического вызова TFDEventAlerter.Unregister.

Кто-нибудь уже сталкивался с этим, может знает как обойти?
Эту тему видел, но решение оттуда мне не подходит, т.к. другая база данных и описанный там метод пустой.
...
Рейтинг: 0 / 0
05.05.2020, 01:07
    #39954232
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC TFDEventAlerter
alekcvp
Как можно узнать что TFDEventAlerter подключён к БД

Active = True
alekcvp
и получает события?

Ну хз ... Читать доку на БД. На пример, у MSSQL список из 7-10 требований, и если одно нарушено то нет ни ошибок ни событий.
...
Рейтинг: 0 / 0
05.05.2020, 02:01
    #39954234
Vlad F
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC TFDEventAlerter
...
Рейтинг: 0 / 0
05.05.2020, 02:04
    #39954235
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC TFDEventAlerter
Dmitry Arefiev
alekcvp
Как можно узнать что TFDEventAlerter подключён к БД

Active = True
alekcvp
и получает события?

Ну хз ... Читать доку на БД. На пример, у MSSQL список из 7-10 требований, и если одно нарушено то нет ни ошибок ни событий.

Ну в том и проблема, что Active = True - это чисто программная настройка и если ему не удалось подключиться к серверу, то он не выдаёт никаких ошибок и прочее, он просто тупо и молча не работает... дело даже не в сервере, сам компонент никак не сообщает о том, что ему тупо не удалось подключиться к серверу.
...
Рейтинг: 0 / 0
05.05.2020, 02:05
    #39954237
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC TFDEventAlerter
Подключается FDConnection
...
Рейтинг: 0 / 0
05.05.2020, 02:06
    #39954238
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC TFDEventAlerter

Очевидно. У меня всё работает как надо... до того момента, как я перекрываю Firebird'у все порты, кроме основного 3050 (для тестирования). Само приложение при этом продолжает нормально работать, а вот EventAlert'er начинает адски глючить, вплоть до зависания всего приложения при отключении от БД.
...
Рейтинг: 0 / 0
05.05.2020, 02:07
    #39954239
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC TFDEventAlerter
Dmitry Arefiev
Подключается FDConnection

А как мне отловить ошибку подключения? Т.е. основное соединение с базой данных проходит нормально, данные я получаю. Не устанавливается только дополнительное подключение для событий. Хотелось бы уметь обрабатывать такую ситуацию.
...
Рейтинг: 0 / 0
05.05.2020, 11:47
    #39954284
Vlad F
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC TFDEventAlerter
alekcvp,

Т.е. на самом деле твой вопрос должен звучать так, - что делает сервер, когда ему не удается открыть дополнительное соединение (а это делает именно сервер, в обратном направлении) для передачи сообщений и оповещает ли он об этом как-нибудь клиента?
Почитай для начала вот здесь
https://firebirdsql.org/file/documentation/papers_presentations/Power_Firebird_events.pdf
и, если ответа так и не найдешь, переходи с этим в форум по IB/FB, там калачи тёртые, должны помочь.
...
Рейтинг: 0 / 0
05.05.2020, 13:39
    #39954313
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC TFDEventAlerter
Смотреть в сторону TFDConnection.OnError и тому подобных
...
Рейтинг: 0 / 0
05.05.2020, 14:35
    #39954325
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC TFDEventAlerter
Vlad F
Т.е. на самом деле твой вопрос должен звучать так, - что делает сервер, когда ему не удается открыть дополнительное соединение (а это делает именно сервер, в обратном направлении) для передачи сообщений и оповещает ли он об этом как-нибудь клиента?

Я-то ссылку читал, а ты?..
авторWhen it is registering for events, it sends the request over that connection.
The server opens another connection at some random port (4012 for example) and sends
that port number to the client. The client then connects to that port. This is called the
secondary connection, and it is used only for events.
...
Рейтинг: 0 / 0
05.05.2020, 14:53
    #39954328
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC TFDEventAlerter
Dmitry Arefiev
Смотреть в сторону TFDConnection.OnError и тому подобных

Спасибо, вроде работает.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FireDAC TFDEventAlerter / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]