Страница 1 из 1
На каком порту FB работает с Event'ами?
Добавлено: 20 ноя 2006, 15:37
Aleksandr.
Про 3050 я вроде врубился, заставляю юзеров открывать при установке программы его в брандмаурере. Но что-то не допонял, по какому порту работают эвенты - вроде как по какому-то другому?
Добавлено: 20 ноя 2006, 20:47
dimitr
по случайному. В некоторых случаях можно настроить явно.
Добавлено: 21 ноя 2006, 05:52
Aleksandr.
В каких? Как его можно задать явно и с какими ограничениями?
Добавлено: 21 ноя 2006, 09:25
dimitr
RemoteAuxPort в конфиге. Не будет работать, если у тебя классик.
Добавлено: 21 ноя 2006, 12:06
Aleksandr.
У меня суперсервер. И что, получается, что без задания этого параметра в конфиге юзер должен вообще брандмаурер вырубать, чтобы FB мог работать с эвентами на том порту, на котором ему заблагорассудится?
Добавлено: 21 ноя 2006, 12:26
kdv
RemoteAuxPort конфигурируется ДЛЯ СУПЕРСЕРВЕРА. И да, без задания этого параметра, увы, firewall придется вырубать.
Добавлено: 21 ноя 2006, 12:53
Aleksandr.
Забубись. Соответственно, для компонент, работающих с эвентами, нада отдельное подключение делать с указанием этого порта, типа myserver/eventport:dbpath?
Добавлено: 21 ноя 2006, 14:18
kdv
нет. собственно, а где там у IBEvent свойства для указания подключения?

IBEvent подключается только к тому IBDatabase, который нужен.
Добавлено: 21 ноя 2006, 16:34
Aleksandr.
Ясна, хотя механизм мне непонятен. Где можно почитать об этом, не подскажете?
Добавлено: 21 ноя 2006, 17:19
kdv
механизм чего непонятен? есть синхронные и асинхронные события. для приема асинхронных событий на сервере регистрируется callback. соответственно, в момент работы основного коннекта клиент обязан получить событие. При регистрации на события организуется доп. коннект, по которому события и перемещаются от сервера к клиенту.
Добавлено: 22 ноя 2006, 21:41
Aleksandr.
Мне непонятно, каким образом идет пересылка эвентов через порт. Программа разделена на две части: серверную и клиентскую, между собой они обмениваются вызовом хранимой процедуры, которая, в свою очередь, вызывает POST_EVENT. Последовательность такая:
1. клиент делает запись в таблицу и посылает событие, зарегистрированное серверной частью, после чего переходит в режим ожидания.
2. Серверная часть, поймав событие, обрабатывает запись и посылает свое событие, зарегистрированное на клиентах.
Было замечено, что подключаемые по локальной сети клиентские части выходят из режима ожидания (получают событие от сервера) только после того, как эта цепочка действий отработает с клиентом, запущенном на том же компе, что и сервер FB. То есть по локальной сети соединение с базой доступно, события от серверной части клиенты ловят, но вызов события клиентом "теряется". Вот и хочу понять, почему и где.
Добавлено: 23 ноя 2006, 17:00
Aleksandr.
Простите, теряется эвент, вызываемый Сервером, а не клиентом. До клиентов в локальной сети событие не доходит.