Subject Re: Firebird Ver 1.5 + Events + Firewall/Router. Questions
Author jarrod_petz
>Events are useful for notifying other clients of changes to the
>table. Presumably if you are allowing the user to continue working
>until the data is ready, you this connection and transaction running
>in a background thread. In this case, it would be easier IMO to let
>the background thread synchronize with the VCL thread once finished
>than to create an 'event object' that is waiting in another thread
>anyway doing the same thing.
What we are trying to do in asynchronous message passing between a
server process which is running on a server computer and multiple
client/workstation. The only other way I can see to do this would be
to add network code to our server process rather then rely on the
database for communications. Is that what you are suggesting?


>Look in firebird.conf at RemoteAuxPort, and restart the service after
>any changes. If you are using a secure channel, then you will have to
>have in place the appropriate firewall rules to allow the server to
>contact back to the client on that port.
Sound good but if the NAT port forwarding rules drop out of the system
or the connection is blocked by a firewall will it have the same
effect as I do currently where when communications are blocked the
Firebird server freezes/stalls/locksup and I have to kill it and
restart it which is not good and disrupts all client connections.


>We use a different approach in that the server stores in a holding
>table the PK of the data that has been changed, and when the client
>synchronises, we send this data down. It is a poll mechanism rather
>than an asynchronous call, however we do not have to worry about
>trying to make a connection from the server to a client through NAT
>and whatever else, and have our system fall over every time some
>goose resets all the rules on the router.
We might just have to go polling as well for this but it seems a waste
when the feature is in Firebird it just needs to not
lockup/stall/crash the server when it can't get a connection and if
possible be a bit more mindful of NAT/Firewalls when establishing new
connections.