Subject Re: [firebird-support] Re: Terminate Long Running Transaction
Author Ann W. Harrison
Slalom wrote:
> Ok, Thanks for the great support.
>

Right. Lets take this again, a bit more slowly. If
I recall correctly, you have an application that's running
well on 1.5.x and moved it to 2.0. Under some circumstances
that are not at all clear, CPU usage would go to 100% and
nothing would happen.

Several possible causes were suggested, and the one that
seemed most likely was an automatic sweep that encountered
huge numbers of old record versions. I'm not completely
convinced that a sweep would show up as 100% CPU since it
has to read the whole database and rewrite pages where old
versions were removed. Beyond that, removing old record
versions from indexes is much less CPU intensive in 2.0
than it was in 1.5, so the explanation would make more sense
if you were running OK on 2.0 and had problems on 1.5.

However, turning off sweep seemed to help, so we all agreed
that sweep and old record versions had to be the problem.

One of the suggestions that was made was to change the
garbage collection style in V2.0 and see if that changed
the behavior. I don't remember whether you tried that,
or what the results were.

So, you have a problem that was diagnosed more by elimination
than by detection, and now you're looking for a way to kill
transactions at the server. And that doesn't exist in 1.5.x
or in 2.0. We can't offer what doesn't exist, even if you
think it should exist.

Since I still doubt the diagnosis, what I'd suggest you do
is get a debugging version of 2.0, run the server in the
debugger, and when it hits its 100% CPU utilization, kill
it and get a trace back.

Regards,


Ann