Deadlock on Readcommited in Firebird
Posted: Wed 11 Nov 2020 09:40
HEllo i have a problem with a read commited Transaction on Firebird 3.0.7
using thsi script
If i start this app twice, i get randomly deadlocks.
If i create a SQL Script :
and i start isql.exe twice, and use in both both "input test.sql"
both isql runs perfectly through the end.
What is the problem here?
using thsi script
Code: Select all
if not UniConnection1.Connected then
UniConnection1.Connect;
if UniTransaction1.Active then
UniTransaction1.Commit;
for i:=1 to 10000 do begin
//UniTransaction1.IsolationLevel := ilReadCommitted;
UniTransaction1.StartTransaction;
UNISQL1.SQL.Text := 'UPDATE TEST SET TEST=6 WHERE ID = 1';
UNISQL1.Execute;
UniTransaction1.Commit;
end;
If i create a SQL Script :
Code: Select all
COMMIT; SET TRANSACTION ISOLATION LEVEL READ COMMITTED WAIT;
UPDATE TEST SET TEST = 1 WHERE ID = 1; COMMIT; SET TRANSACTION ISOLATION LEVEL READ COMMITTED WAIT;
UPDATE TEST SET TEST = 1 WHERE ID = 1; COMMIT; SET TRANSACTION ISOLATION LEVEL READ COMMITTED WAIT;
UPDATE TEST SET TEST = 1 WHERE ID = 1; COMMIT; SET TRANSACTION ISOLATION LEVEL READ COMMITTED WAIT;
UPDATE TEST SET TEST = 1 WHERE ID = 1; COMMIT; SET TRANSACTION ISOLATION LEVEL READ COMMITTED WAIT;
* 10000 lines more of this*
both isql runs perfectly through the end.
What is the problem here?