|
|
|
FireDAC TFDEventAlerter
|
|||
|---|---|---|---|
|
#18+
Как можно узнать что TFDEventAlerter подключён к БД и получает события? Потому что никаких ошибок он не выдаёт, если не может подключиться. .Active = True в любом случае. Как узнать в рантайме, удалось ему подключиться или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2020, 21:27 |
|
||
|
FireDAC TFDEventAlerter
|
|||
|---|---|---|---|
|
#18+
Плюс возникла ещё одна проблема: если при подключении к базе данных (Firebird) TFDEventAlerter не может подключиться к СУБД (например, все порты, кроме 3050, закрыты файрволом), то при отключении от базы данных всё приложение виснет в момент автоматического вызова TFDEventAlerter.Unregister. Кто-нибудь уже сталкивался с этим, может знает как обойти? Эту тему видел, но решение оттуда мне не подходит, т.к. другая база данных и описанный там метод пустой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2020, 23:49 |
|
||
|
FireDAC TFDEventAlerter
|
|||
|---|---|---|---|
|
#18+
alekcvp Как можно узнать что TFDEventAlerter подключён к БД Active = True alekcvp и получает события? Ну хз ... Читать доку на БД. На пример, у MSSQL список из 7-10 требований, и если одно нарушено то нет ни ошибок ни событий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2020, 01:07 |
|
||
|
FireDAC TFDEventAlerter
|
|||
|---|---|---|---|
|
#18+
Dmitry Arefiev alekcvp Как можно узнать что TFDEventAlerter подключён к БД Active = True alekcvp и получает события? Ну хз ... Читать доку на БД. На пример, у MSSQL список из 7-10 требований, и если одно нарушено то нет ни ошибок ни событий. Ну в том и проблема, что Active = True - это чисто программная настройка и если ему не удалось подключиться к серверу, то он не выдаёт никаких ошибок и прочее, он просто тупо и молча не работает... дело даже не в сервере, сам компонент никак не сообщает о том, что ему тупо не удалось подключиться к серверу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2020, 02:04 |
|
||
|
FireDAC TFDEventAlerter
|
|||
|---|---|---|---|
|
#18+
Подключается FDConnection ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2020, 02:05 |
|
||
|
FireDAC TFDEventAlerter
|
|||
|---|---|---|---|
|
#18+
Vlad F Очевидно. У меня всё работает как надо... до того момента, как я перекрываю Firebird'у все порты, кроме основного 3050 (для тестирования). Само приложение при этом продолжает нормально работать, а вот EventAlert'er начинает адски глючить, вплоть до зависания всего приложения при отключении от БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2020, 02:06 |
|
||
|
FireDAC TFDEventAlerter
|
|||
|---|---|---|---|
|
#18+
Dmitry Arefiev Подключается FDConnection А как мне отловить ошибку подключения? Т.е. основное соединение с базой данных проходит нормально, данные я получаю. Не устанавливается только дополнительное подключение для событий. Хотелось бы уметь обрабатывать такую ситуацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2020, 02:07 |
|
||
|
FireDAC TFDEventAlerter
|
|||
|---|---|---|---|
|
#18+
alekcvp, Т.е. на самом деле твой вопрос должен звучать так, - что делает сервер, когда ему не удается открыть дополнительное соединение (а это делает именно сервер, в обратном направлении) для передачи сообщений и оповещает ли он об этом как-нибудь клиента? Почитай для начала вот здесь https://firebirdsql.org/file/documentation/papers_presentations/Power_Firebird_events.pdf и, если ответа так и не найдешь, переходи с этим в форум по IB/FB, там калачи тёртые, должны помочь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2020, 11:47 |
|
||
|
FireDAC TFDEventAlerter
|
|||
|---|---|---|---|
|
#18+
Смотреть в сторону TFDConnection.OnError и тому подобных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2020, 13:39 |
|
||
|
FireDAC TFDEventAlerter
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2020, 14:35 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39954234&tid=2038352]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 385ms |

| 0 / 0 |
