Subject Re: [Firebird-Java] Re: Problem with SELECT Statement
Author Nickolay Samofatov
Hello, Roman,

>> This is just an unfortunately the way the driver implements auto
>> commit mode - I don't know exactly why but it was necessary (at
>> least as far as anyone could see) to do this to implement
>> auto-commit with firebird.

> Reason for this is that server supports auto-commit mode using commit
> retaining (what this is you can read in documentation and ask in
> Firebird-Support group).

> Unfortunatelly commit retaining might inhibit garbage collection

GC should never be inhibiteded in READ COMMITTED case. Only TIP
cleanup may need to be inhibited, but I doubt it for retaining
transactions as they are marked as committed AFAIR. I may perform a
closer look on this code if you want.

If what I wrote is wrong then it is a bug and should be threated as
such. You can post post appropropriate item to Bug Tracker along with
testcase.

In isc_tpb_concurrentcy modes GC is needed to be inhibited because
snapshot is preserved across commit.

> and after some point will cause an error "maximum number of
> savepoints exceeded".

This had to be fixed in 1.5. Have you got a testcase for this problem?

> So, fetching all data to the client seemed for us the only option to
> implement auto-commit mode cleanly.

Anyway, I do not think that clear implementation of auto-commit mode
is important as this mode is usually useless for serious development.

> Roman Rokytskyy


--
Nickolay Samofatov