Subject Re: [firebird-support] Re: Oldest transaction don't change
Author Helen Borrie
At 03:59 p.m. 16/03/2015, sdnetwork@... [firebird-support] wrote:

>i have done some search and maybe i have a problem with commit reaining but it still strange !
>just to be sure about my test :
>1) if i do select count(1) from mon$transactions after the end of my program and it returns 0, is what I can tell that there is no running transaction ?

Don't confuse a RUNNING transaction with an INTERESTING transaction. If you have an interface that has requested COMMIT WITH RETAIN (CommitRetaining in Delphi) then the transaction, although committed, remain "interesting" until it is committed with COMMIT. The ID of that transaction is what you see in "Oldest transaction". Check the transaction settings in your client code.

>3) i confirm that the same program don't have this problem with the 2.5.3 on windows super server but i don't find anything on bug fixes in release note.

This is not convincing. Your mention of the background sweep seeming to hold things up may be more revealing. I suggest you resolve the COMMIT WITH RETAIN problem and see where it takes you. Also, check your firebird.conf setting for GcPolicy. With Superserver, you may get less interference from sweeping if it is set to 'Background" instead of "Combined". It won't solve the problem but it might help to keep things flowing while you fix and test the transaction settings. Don't forget to restart the server after altering a parameter in firebird.conf.

Note also that some developers who have had this problem from CommitRetaining have given themselves some air by setting the SweepInterval to 0 and running sweeps during user down-time, using gfix or a third-party tool.

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