Subject Re: Firebird performance degradation
Author mikcaau
--- In firebird-support@yahoogroups.com, Francisco Heker
<sistemas@i...> wrote:
>
>
<<snip>>
> Here is the output of gstat -h
> Database header page information:
> Flags 0
> Checksum 12345
> Generation 265688
> Page size 1024
> ODS version 10.1
> Oldest transaction 262517
> Oldest active 262518
> Oldest snapshot 262518
> Next transaction 265520
> Bumped transaction 1
> Sequence number 0
> Next attachment ID 0
> Implementation ID 16
> Shadow count 0
> Page buffers 0
> Next header page 0
> Database dialect 3
> Creation date May 21, 2004 15:46:28
> Attributes
> Variable header data:
> Sweep interval: 300
> *END*
> As you can see, the "Oldest Active" is far way (3000) from "Next
Transaction"
> and near to "Oldest transaction". So, the sweep is not triggered.
> Why are the transactions being keept active?
> We are prety sure that our application is not doing commit_retaining.
>
>
>
>
> > At 03:39 PM 19/12/2005 -0300, you wrote:
> >Hi
> >
<<snip>>
> tables) and big buildups of resources that, though abandoned by the
clients
> hours ago, remain in memory awaiting hard commits to release them.
>
> ./heLen <
>

Francisco,
Db is keeping transactions open because clients are not committing them.
If you can shut down your clients then about 6 minutes after a client
is shut down (depends on load and default settings in firebird.conf)
any transactions it had open will be rolled back by the server.

Another trick is to write a routine that scans all queries or
transactions in your program and have it list those that are active
(not committed) to a log file.




Mick