Subject Re: [IBO] OAT
Author Jason Wharton
Use the TIB_StatusDialog to peek inside the application instance and look
over all the transactions to see if they are closing or not.

Have you looked into the transaction timeout properties?
Also, the TIB_StatusDialog can help you look into the internals of your
application and investiagte what all the transactions are up to. It makes it
easy to identify transactions that are not closing.

Here are the things you need to look for:

Using transaction isloation of tiConcurrency. All transactions of this
isolation must be ended in code. This is whether AutoCommit is set to true
or not.

Using TIB_Cursor components. You must fetch all records or it will prevent a
transaction from ending.

Using very large datasets and not fetching all records into the buffer. This
will prevent a transaction from ending as well.

Jason Wharton
www.ibobjects.com

----- Original Message -----
From: "Paul Hope" <paulhope@...>
To: <IBObjects@yahoogroups.com>
Sent: Monday, January 12, 2004 7:56 AM
Subject: [IBO] OAT


> Hi
>
> I suspect I have OAT problems and would appreciate some help as to where
to look.
>
> This is an extract from DB Stats
>
> Oldest transaction 983067
> Oldest active 983068
> Oldest snapshot 983067
> Next transaction 1752712
>
> If this is OK then I can stop worrying, however I think it means that
there are some 770,000 transactions active - which doesnt sound reasonable
:-(
>
> The default transaction is set to AutoCommit and ReadCommitted. This is
used by
> - All read transactions
> - All trivial single update transactions
>
> All multiple updates use their own IB_Transaction (not AutoCommit,
ReadCommitted) and the code contains a StartTransaction and Commit/Rollback
in a try/except block. There is never any oportunity for the user to hold
up the process between the two.
>
> Forms that do not use data aware components are loaded using an IB_Cursor
with everything as default except for the IB_Connection and the SQL. I
will call First, read the data to EOF, then probably leave the IB_Cursor and
let it be destroyed with the form.
>
> Forms that do use data aware controls use the IB_Query with update SQL and
the default transaction. Some of these use grids, and some of those are
master detail connected to potentially large tables. Sometimes the forms
have their own AutoCommit transaction object.
>
> Any suggestions as to how I go about sorting this would be greatly
appreciated.
>
> ( IB 5.6, D6, IBO4.2Ie)
>
> Regards
> Paul
>
>
> [Non-text portions of this message have been removed]
>
>
>
___________________________________________________________________________
> IB Objects - direct, complete, custom connectivity to Firebird or
InterBase
> without the need for BDE, ODBC or any other layer.
>
___________________________________________________________________________
> http://www.ibobjects.com - your IBO community resource for Tech Info
papers,
> keyword-searchable FAQ, community code contributions and more !
>
>
> Yahoo! Groups Links
>
> To visit your group on the web, go to:
> http://groups.yahoo.com/group/IBObjects/
>
> To unsubscribe from this group, send an email to:
> IBObjects-unsubscribe@yahoogroups.com
>
> Your use of Yahoo! Groups is subject to:
> http://docs.yahoo.com/info/terms/
>
>
>