Hello, Roman!
Roman Rokytskyy wrote:
ошибка. изменить их всегда невозможно в этом случае,
ты уверен? может сейчас что-то изменилось, но вот этот пример когда-то
работал без проблем для read committed и rec_version (псевдо-код):
A.updateRowById(accountId = 1,
set balance = balance - 3);
A.commit(); // now balance is 2, but B
believes it is 5
B.updateRowById(accountId = 1, // <--- Ups! we get no lock
conflict!
set balance = balance - 4);
B.commit(); // now balance is -2, not 1
классический read skew. А я писал про обычный deadlock когда A не делает
commit, а B делает update.
речь-то не про него, а про ситуацию
если a= no_rec_version
b.UpdateRow
a.ReadRow - ошибка "deadlock"
--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34