|
|
|
Закрытый порт и isc_que_events (TIBEvents.RegisterEvents)
|
|||
|---|---|---|---|
|
#18+
Добрый день! Ситуация такая. Приложению иногда посылается EVENT, но это не очень критично. Т.е. если порт сервера 3060 - приложение должно работать. Скажем, если не удалось зарегистрировать работу с этим событием - выдать при запуске предупреждение, но продолжить работу. Вопрос: как это лучше сделать? Использую D6, IBX, FB 2.1.1.17910. Пока ситуация такая - после IBEvents.RegisterEvents со временем (или сразу, если вызвать ProcessMessages) основной поток (где окна VCL) зависает. Покопавшись, я нашел, что зависает на Synchronize(SQueEvents), т.е. в итоге в главном потоке вызывается isc_que_events с указанием коллбэка EventCallback, но вызова этого коллбэка никогда не происходит, и isc_que_events зависает, а вместе с ним - и главный поток. Пока придумал только вот что: перед RegisterEvents запускать поток, который будет ждать таймаут (скажем, секунд 10, пока выполниться ProcessMessages после RegisterEvents - что в итоге вызовет isc_que_events), и если не выполнится - выдавать ошибку и закрывать процесс. Но хотелось бы как-то продолжить работу. Есть другие варианты? Можно ли как-то проверить, "получится ли" ;) зарегистрировать событие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 20:49:59 |
|
||
|
Закрытый порт и isc_que_events (TIBEvents.RegisterEvents)
|
|||
|---|---|---|---|
|
#18+
YuRockisc_que_events зависает Он не зависает, он ждёт connection timeout твоей системы. Когда обломится - вернётся. Он может вернуться сразу, если ты набюёшь морду firewall-у, чтобы не прикидывался чёрной дырой, а возвращал отлуп сразу как все нормальные люди. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 20:57:41 |
|
||
|
Закрытый порт и isc_que_events (TIBEvents.RegisterEvents)
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovОн может вернуться сразу, если ты набюёшь морду firewall-у Блок этого порта происходит где-то на промежуточном сервере, или на маршрутизаторе или еще хз где. В том то и беда, что часто изменить настройки фаерфола нереально. П.С. Таймаут там видимо очень большой, т.к. я ждал минут 20 - не помогло. Так что, можно сказать, что в данном случае слово "ждёт" почти эквивалентно "зависает". Т.ч. бороться с этим всё равно как-то надо. Вопрос - как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 21:08:57 |
|
||
|
Закрытый порт и isc_que_events (TIBEvents.RegisterEvents)
|
|||
|---|---|---|---|
|
#18+
YuRockбороться с этим всё равно как-то надо. Вопрос - как. Не используй эвенты. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 21:13:38 |
|
||
|
Закрытый порт и isc_que_events (TIBEvents.RegisterEvents)
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНе используй эвенты. В том то и дело, что их надо использовать, если это возможно. Как лучше определить, возможно ли это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 21:15:57 |
|
||
|
Закрытый порт и isc_que_events (TIBEvents.RegisterEvents)
|
|||
|---|---|---|---|
|
#18+
YuRockВ том то и дело, что их надо использовать, если это возможно. Тогда выкинь TIBEvent (всё равно он глючный) и вызывай isc_que_events() в потоке. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2014, 21:18:33 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38575690&tid=1563839]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
191ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 460ms |

| 0 / 0 |
