Subject Re: [firebird-support] Long read-only Transactions
Author Helen Borrie
At 06:28 AM 13/06/2008, Sergio H. Gonzalez wrote:
>[FB 2.1]
>I have some forms with ClientDataSets in order to mantain some tables of my
>Some of these forms, may display some child record from another table.
>I always open the read-only tables with a TIBQuery conected to the dataset
>via the query's DataSourse = MyClientDataSetDataSourse.
>Now I'm thinking that the transaction asociated with the TIBQueries will be
>open all the time the form is open.
>Is it bad?
>Of course all that transaction don't modify nothing. Just read records.

Don't confuse a "read-only dataset" with a read-only transaction. A "read-only dataset" is a client-side attribute - the server does not know about it.

If the TRANSACTION is a read-write transaction (the default in IBX) then keeping any of its datasets open for long periods will cause the OIT to get stuck and inhibit garbage collection.

A read-only READ COMMITTED transaction can stay open for longer periods without inhibiting GC. The same is not true if the read-only transaction is SNAPSHOT (what IBX calls Concurrency).