Subject Re: [firebird-support] Windows firewall and multi-user access.
Author Helen Borrie
>> We have an application using Delphi, IBObjects and Firebird, which is
>> being
>> run in both a single-user and multi-user basis. The multi-user version has
>> users on separate PCs operating against a single Firebird DB on a server.
>> Lately, after releasing an updated version (in which the Firebird server
>> is
>> changed from V2.1 to v2.5),

Coincidence re the change of server version.

>some users have noticed that on one form, if
>> two users are using the form on two PCs, one user's changes can cause the
>> other user's cursor (the selected item) to change.

From: Leyne, Sean

>That is impossible.

At 12:00 p.m. 8/03/2014, Woody wrote:

>Not necessarily. If he is using events, it could be causing the program to
>respond to the event by reloading the listing or something which wouldn't
>happen if the firewall is blocking the port. (I think, anyway.)

I agree with that. The way the auxiliary port for events (RemoteAuxPort in firebird.conf) is configured will matter here. If you don't configure it explicitly, events will just use the first available open port. If no port is available, events just don't happen. Same if you don't open the configured port in the firewall.

And if the user's transaction is running in ReadCommitted, any refresh of the dataset will reflect changes committed since the last open or refresh, even if events are not involved.

I think another crucial issue here might be developer amnesia about an IBO feature called DML Caching, that can keep individual connections informed of changes by other connections, in ways that are transparent to the human user. If you can find DMLCache or anything related to it in your source code, you'll be able to trace what has been set up to happen at each client. Further questions on the application side should go the IBO list, not here.

Helen Borrie, Support Consultant, IBPhoenix (Pacific)
Author of "The Firebird Book" and "The Firebird Book Second Edition"