Subject Re: [firebird-support] OIT and OAT not moving
Author Helen Borrie
At 02:56 PM 16/12/2004 +0800, you wrote:

>Sorry, but I have just another question.
>I managed to clean all limbo; gap is looking good now. What's
>bothering me now is
>Next transaction is increasing like crazy,

Next transaction will increment each time someone starts a transaction.
Everything you do happens in a transaction. How much happens in each
transaction and how long the transaction lasts depends on the application
program.

>and transactions in inventory manager is piling up at lightning speed.

Can you explain what you mean by that?

>I suppose this means that nobody is committing anything in the application?

Possibly, but it's impossible to guess that. Earlier you talked about
people stopping the server arbitrarily "when performance slowed
down". That symptom usually indicates a lot of long-running transactions -
some of which may well have allowed inserts, updates and deletes to be
committed to the database without actually releasing the transaction
resources (this is the effect of Commit Retaining).

>If yes, is there a way I can use gfix, or any other tool to just force
>commit all those transacs?

No. A transaction is a conversation between a specific client instance and
the database. That client instance starts the conversation and that client
instance has to end the conversation. If your application code doesn't
take care of ensuring that the conversations end cleanly and in a timely
manner, then degrading performance is endemic in your software. There's no
utility that will rectify that.

>What will happen if this just goes on?

More of the same. The application forces the server to continually use up
available resources by building up a transaction inventory that is never
allowed to get into a level state. It just grows and grows, starving the
server of resources for the work it's asked to do, until the inevitable
daily downtime while someone reboots the server (hopefully *after* warning
people to terminate their work safely and making sure they do so). Then,
it just starts all over again...

./hb