around 100 concurrent connections, but off course all connection is to a single 
user and a single operation at a time

the exact error i have during my massive update is :

deadlock At trigger 'ONAFTERUPDATEUSER' line: 92, col: 5
deadlock
Error Code: 16

but as the connection is in read_commited + no_rec_version + WAIT
i can not understand why i have this deadlock :( 


--- In [email protected], "Benno" <iblist@...> wrote:
>
> Hi,
> 
> just curious, but how many database connections do you use in your 
> application?
> 
> If I recall correct, the client libraries (at least in Delphi) in the past 
> were not thread safe. Don't know about current status, but perhaps that is 
> part of your problem.
> 
> Benno
> 
>   ----- Original Message ----- 
>   From: nathanelrick 
>   To: [email protected] 
>   Sent: Thursday, March 01, 2012 7:31 PM
>   Subject: [firebird-support] Re: what is the most fastest isolation level ?
> 
> 
>     
>   > The problem is that the read_committed transaction will fail if it
>   > tries to update a record version created by a concurrent transaction,
>   > even if that transaction has committed. It's kinda dumb, but that's
>   > the way it's implemented. Read-committed transactions follow the same
>   > update concurrency rules as consistent read transaction. Even though a
>   > read-committed transaction can read a record version that was created
>   > and committed by a concurrent transaction, it can can't update that
>   > version.
> 
>   hello ann,
> 
>   i just make some try (reading one of your article where you write beleave 
> the code, not the comments) and this is my test
> 
>   2 threads
> 
>   isc_tpb_write
>   isc_tpb_read_committed
>   isc_tpb_no_rec_version
>   isc_tpb_wait
> 
>   1rt thread Start a massive update that take 10 min to finish (update tableA 
> set fieldA = 'xxx'); that let me the time to start thread2
> 
>   So i launch a second thread that do some insert/delete/update in last 
> reccord in the tableA (that are not yet processed by the massive update)
> 
>   If i not commit the modification in the 2nd thread, then when the 1rt 
> thread will arrive on the reccord updated/inserted/deleted by the 2nd thread 
> it's will wait a commit/roolback. if in the 2nd thread i commit, then First 
> thread will finish peacefully without any error
> 
>   so i no understand how it's possible to have any deadlock ?
> 
> 
> 
>   
> 
> [Non-text portions of this message have been removed]
>


Reply via email to