Subject Re: [IBO] AllowCheckOAT
Author guido.klapperich@t-online.de
One thing, I forgot to mention. When IBO closes the transaction by the
TimeoutProps, the dataset always stays open, even when CommitAction is caClose.
How have you realized this ?


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
>