Subject Next TX #, OAT and Connection Duration?
Author hugh_borst
Hello dear FireBird users;

We are having performance degradation problems with several FireBird
and InterBase client installations and have searched throughout our
client application (Delphi 5 and BDE) for long-running (uncommitted)
transactions without success. We have closely examined the
interaction between the client and the database and have found that
when the database slows down, the Next Transaction ID value and the
Oldest Active & Interesting Transaction values are highly divergent,
perhaps as far off as 750,000 or more. This state of affairs slows
the database down dramatically of course.

We expected to find some long running transaction in the client code,
but this is not the case. To our surprise, it seems that transactions
started on a given connection while other, CONCURRENT connections are
running will hold the OAT & OIT from advancing until ALL of those
connections disconnect, regardless of the fact that all connections
have committed their transactions. Once all clients have disconnected
(including IBConsole), the transaction counters catch up to the next
transaction value (within one, as expected) without fail.
Unfortunately, we have some clients whose users are prone to running
the application for days on end without exiting, much less rebooting.
At any rate, we do have a mechanism for forcing the users off of the
system, so we figure that we're all set, although we are very
concerned that the engine is working in this way.

Would anyone care to confirm to us that this behavior is what should
be expected from InterBase / FireBird?

Also, is this behavior a necessary aspect of the versioning engine?
Why can the engine not move the OIT & OAT once the transaction has
been committed?

Lastly, is this something that can be entered as a bug fix or
enhancement request for FB 2.0?

Our configuration varies greatly from client to client but this
problem is consistent across versions of IB ( or 7.1) and
FireBird 1.0.3. The database is hosted on either a Windows 2000
server or a Red Hat Linux 9 server. All clients are Windows 98 or

Thanks very much in advance.


Hugh J Borst