Subject Re: [Firebird-Java] Re: interleaved transactions and deadlocks
Author Roman Rokytskyy
>> PS. BTW, do you know that starting FB 2.0 the lock timeout can be
> controlled
>> via TPB. That means that in XA-mode we can reduce the differences to
> one
>> case - "immediate" deadlock notification.
> Sorry, I don't understand that. If you could be a little more
> descriptive I'd be glad.

The low-level GDS.iscStartTransaction call takes a
TransactionParameterBuffer (TPB) as a parameter. It describes the
transaction parameters for a newly started transaction:

- isolation level (read_committed, concurrency, consistency);
- write more (read, write)
- lock resolution (wait, no_wait)
- table reservation (only for consistency isolation, see API Guide if

Since Firebird 2.0 one can add also the timeout for wait lock resolution
(default value is specified in the config).

We can then add a parameter to XAConnection that specifies the TPB and use
the no_wait mode or set the timeout to very small value, so that application
does not notice that system waits.