|
![]() |
#1 |
Участник
|
Цитата:
Создаем в таблице две записи. 2 джоба. 1-й джоб: 1. ttsBegin; 2. Блокировка 1-й записи forupdate 3. breakpoint 4. Блокировка 2-й записи forupdate 2-й джоб: 1. ttsBegin; 2. Блокировка 2-й записи forupdate 3. breakpoint 4. Блокировка 1-й записи forupdate Запускаем с одной сессии первый джоб, со второй сессии - второй. Она оба остановятся на п.3 после этого давим F5 в обоих отладчиках и получаем deadlock Правда исключение в аксапте может возникнуть не сразу - зависит от настроек БД |
|
|
За это сообщение автора поблагодарили: miklenew (5). |
![]() |
#2 |
Участник
|
Спасибо.
То что нужно. Вот джобы. Может кому пригодяться. X++: static void Job1(Args _args) { Table2 table; ; ttsbegin; select forupdate table where table.Field1 == '1'; breakPoint; table.update(); select forupdate table where table.Field1 == '2'; ttscommit; } X++: static void Job2(Args _args) { Table2 table; ; ttsbegin; select forupdate table where table.Field1 == '2'; breakPoint; table.update(); select forupdate table where table.Field1 == '1'; ttscommit; }
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. Последний раз редактировалось miklenew; 19.03.2009 в 13:48. |
|
Теги |
блокировка |
|
|