Subject Re: [Firebird-Java] Transaction parameters + Jaybird
Author Roman Rokytskyy
> Please disregard by first question. I just noticed that in
> isc_tpb_mapping.properties TRANSACTION_REPEATABLE_READ has
> isc_tpb_conCURRENCY setting and TRANSACTION_SERIALIZABLE has
> isc_tpb_conSISTENCY. Could you tell me which one corresponds to SNAPSHOT?

concurrency corresponds to SNAPSHOT, consistency corresponds to SNAPSHOT
TABLE STABILITY.

However, re. the "more concurrency", the isc_tpb_concurrency and
isc_tpb_read_committed are pretty similar, as long as you do not use
"isc_tpb_no_rec_version" flag for read committed.

In both isolation levels writers do not block readers, so do not worry.
The difference is when the reading transaction (TrA) "sees"
modifications made by writing transaction (TrB). In
isc_tpb_read_committed case that happens when TrB committs, in
isc_tpb_concurrency it happens when TrA committs.

If you have an issue when processing in TrA waits for TrB to complete,
changing the isolation level won't really help you. Such behavior is
related to the case when TrA tries to update the record updated in TrB.
In read-committed case TrA will wait until TrB commits (then you get an
error and FB allows you to re-execute your update in TrA), in
concurrency TrA will fail at commit time.

Roman