Форум: "Базы";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];
ВнизDeadlock Update Найти похожие ветки
← →
ss300 (2004-05-26 09:19) [0]доброе утро мастера!!
на сервере есть ХП
вот основной код:
UPDATE Global SET LASTREGNUM = :Ret;
UPDATE Global SET Data = :NowDate;
Когда я с одного клиентского приложения вызываю процедуру
spUP.ExecProc; работает ноормально.
а когда паралельно 2 клиента вызывает процедуру то на одном клиенте ошибка:
Deadlock update with concurrent update
Как устранить эту ошибку ? ..
спасибо
← →
Johnmen © (2004-05-26 09:26) [1]Разобраться с конкурирующими транзакциями. см.ibase.ru
← →
Sergey13 © (2004-05-26 09:27) [2]Может так.
UPDATE Global SET LASTREGNUM = :Ret, Data = :NowDate;
И потом. У тебя вся таблица должна апдейтится в процедуре?
← →
ss300 (2004-05-26 09:39) [3]Да, вся таблица апдейтится
там всего лишь одна таблица
← →
ss300 (2004-05-26 09:47) [4]может IBTransaction := true сделать ??
← →
Sergey13 © (2004-05-26 09:48) [5]2ss300 (26.05.04 09:39) [3]
Ну тогда таблицу надо перед апдейтом блокировать, ИМХО. Странная задача какая то - несколько человек одновременно апдейтят всю таблицу. Может в консерватории что подправить надо?
← →
ss300 (2004-05-26 10:12) [6]таблица блокируется когда первый юзер апдейтит!! и второй юзер не может апйдетит.. как разблокировать таблицу после того как первый юзер заапдетит ??
← →
Sergey13 © (2004-05-26 10:42) [7]комит/ролбек снимают блокировку. Но у тебя, ИМХО, несколько другая ситуевина. Желательно блокировать таблицу перед апдейтом. Типа для ФБ1.5 select * from table for update With Lock. Для ИБ6.0 смотри ссылку в [1].
И еще раз повторю - странная задача у тебя. ИМХО, надо структуру править.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c