Subject Re: [IBO] TIB_Transaction.LockWait strange behaviour
Author IB Objects
> even though TIB_Transaction.LockWait = true
> a deadlock error is raised when the lock condition is removed
>
> is that normal ?
>

I think this could be the result of how I clear the locks. I use a SavePoint
because in earlier days there wasn't the possibility of doing a
rollback_retaining. Now that this is possible in Firebird I can implement it
that way and this should work as you like it to. I'm working on the code
changes to enable this improvement. It's not going to be a simple change.

> i thought that if LockWait =true the transaction had to go on without
> deadlock error

No, because of above, if another change is in limbo it will wait but if it
commits then there is a deadlock and so it reports it. waiting is only while
the contending updates are uncommitted. If I get it to use rollback
retaining instead of commit retaining to clear the locks then this won't be
a problem any longer. If the contending change is rolled back then the one
that is waiting is allowed to proceed without any exceptions.

Regards,
Jason Wharton
www.ibobjects.com