> Again, thank you guys - I've found the issue in a application that started a 
> "read-only" transaction to update some labels on a form and keeping the OAT 
> stuck.
>
> With my luck, I closed the app and froze the poor server, now trying to sweep 
> 7 days worth of transactions from all other tables... ouch - I was not 
> popular.  All in all, I made some program changes, the database is back up 
> and running and the OAT seems to be moving forward slowly as it should.
>
> What a great day this is - this has been troubling us for a while now and we 
> could never pin point the problem.

Additionally, I would take a step back and re-think transaction 
management in your client applications in general.

According to your header page statistics, you had > 50 mio transactions 
in 7 days, which means in your example approx. 83 transactions / second 
(if my math doesn't fail *g*) in case of an 24/7 environment.

The transaction ID is a 32-bit integer, thus you can have ~ 2 bio. 
transactions until a backup/restore of your database is needed, which is 
~ 280 days after your last restore.

Keep an eye on that.


-- 
With regards,
Thomas Steinmaurer
http://www.upscene.com/


> Regards,
> Wim
>
> --- In firebird-support@yahoogroups.com, Svein Erling Tysvær 
> <svein.erling.tysvaer@...> wrote:
>>
>>> Thank you very much for your responses - this makes sense. We have a couple 
>>> of server side applications that run
>>> constantly. Although, they  should all be closing their connections. We 
>>> will investigate further.
>>>
>>> Could this somehow be related to the .NET driver with connection pooling? 
>>> The one application that I suspect
>>> starts and commits small incremental transactions, but uses connection 
>>> pooling?
>>
>> A common reason would be using CommitRetaining rather than Commit. Although 
>> CommitRetaining can be convenient, it stops the OAT from moving on so you 
>> must ascertain that a hard Commit is used occasionally. Connection pooling 
>> by itself shouldn't cause your problems, unless there's also some kind of 
>> "transaction pooling" (but a transaction can span several connections). Note 
>> that the transaction does not have to do any modification to the database, 
>> even SELECTs can make the OAT stuck (the one exception is that transactions 
>> that are read only AND read committed do not stop the OAT from moving).
>>
>> Actually, we had a similar (though not related) problem recently, which 
>> turned out to be due to having a TIB_Transaction (IB Objects) with 
>> AutoCommit, and then in code do 'if TIB_Transaction1.TransactionIsActive 
>> then TIB_Transaction1.Commit'. Due to the AutoCommit, TransactionIsActive 
>> was false, so no hard Commit was done. AutoCommit did CommitRetaining, so 
>> the OAT got stuck until the program terminated. Our users typically start 
>> that program in the morning and closes it at the end of the day, so we only 
>> had one day of delay. Your gap indicates that your problematic transaction 
>> (well, there could be several problematic transactions, you'll find out) was 
>> started shortly after the restore, so programs started later than about July 
>> 4th are not suspected.
>>
>> Set
>>
>
>
>
>
> ------------------------------------
>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
> Visit http://www.firebirdsql.org and click the Resources item
> on the main (top) menu.  Try Knowledgebase and FAQ links !
>
> Also search the knowledgebases at http://www.ibphoenix.com
>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> Yahoo! Groups Links
>
>
>

Reply via email to