Subject Re: [IBO] AllowCheckOAT
Author Jason Wharton
I'm a bit rusty on this code as I haven't done anything with it for quite
some time.

Tinker some more and let me know if you get stumped.

Jason Wharton
CPS - Mesa AZ
http://www.ibobjects.com


----- Original Message -----
From: <guido.klapperich@...>
To: <IBObjects@yahoogroups.com>
Sent: Tuesday, February 13, 2001 6:40 PM
Subject: Re: [IBO] AllowCheckOAT


> In my testapp, I have the following settings:
> TimeoutProps.AllowCheckOAT = 5
> TimeoutProps.Attempt = 5
> TimeoutProps.AttemptMaxRows = 500
> TimeoutProps.AttemptRetry = 3
> TimeoutProps.PromptUser = 10
>
> With a IB_Query I make a select from a table with 18.000 rows. When I open
the
> Query, 9 rows were fetched, because of the grid. After 5 seconds
automaticly all
> rows will be fetched, CommitAction is caClose. Should it not be so, that
after
> fetching 500 Rows, the user should be prompted ?
>
> Guido
>
> Jason Wharton wrote:
>
> > Guido,
> >
> > > Let's see, if I get it:
> > > AllowCheckOAT=30
> > > Attempt=300
> > > AttemptMaxRows=15000
> > > AttemptRetry=5
> > > AttemptTicks=500
> > >
> > > A dataset with 100.000 rows will be opened and displayed in Grid, so
30
> > rows
> > > were fetched. After 30 sec IBO tries to end the transaction, but
fails.
> > After 60
> > > sec IBO tries again and fails and so on. After 300 sec IBO sees, that
not
> > all
> > > rows were fetched and it tries to fetch up to 15.000 rows in a half
second
> > > (AttemptTicks=500). After 5 sec IBO fetches again 15.000 rows and so
on,
> > until
> > > all rows were fetched and when the CheckOAT fires next time, the
> > transaction
> > > will be ended.
> > > I hope, I described it the right way.
> > >
> > > At least, one thing is not clear to me. With the TimeoutProps, all
> > datasets will
> > > fetch all rows regardless wether their CommitAction is caFetchAll or
not.
> > This
> > > is a great waste of memory, because a user normally sees only up to
100
> > rows at
> > > one time and not like my example 100.000. The only way around I see,
is
> > not to
> > > use the TimeoutProps or is there another ?
> >
> > You are close but some of what you assume isn't quite accurate. I'll
> > clarify. Modifying your words a little to be more explicit:
> >
> > A dataset with 100.000 rows will be opened and displayed in Grid, so 30
rows
> > were fetched. After 30 sec IBO tries to end the transaction, but fails.
From
> > that point on it checks and fails each time the Session fires an OnTimer
> > event. After 300 sec IBO sees, that not all rows were fetched. It starts
> > fetching records in short little spurts to get to the end of the cursor.
It
> > will only go up to 15.000 rows and stop. Each spurt is a half second
> > (AttemptTicks=500). The time between spurts is 5 sec before IBO fetches
> > again. If the cursor end is reached for all datasets then the CheckOAT
ends
> > the transaction.
> >
> > If it gets stuck at 15,000 rows it will not take any more action until
the
> > prompt timeout is met. Then the user actually gets prompted. They can
ignore
> > and make some adjustments to satisfy it like close a form or something.
If
> > they are unsuccessful they will get prompted again and again until it
annoys
> > them.
> >
> > If the user doesn't respond to the prompt and the force option takes
place
> > it will force the transaction closed.
> >
> > HTH,
> > Jason Wharton
> > CPS - Mesa AZ
> > http://www.ibobjects.com
> >
>
>
>
>
>