Пример взаимоблокировки в Oracle

Взаимная блокировка двух сессий происходит когда сессии натыкаются на блокировку друг друга. Продемонстрировать такое поведение можно на таблице с двумя строками.

Следующая последовательность запросов update приводит к взаимной блокировке.

Сессия 1Сессия 2
update test.emp set name = '11' where rid = 1;
update test.emp set name = '22' where rid = 2;
update test.emp set name = '22' where rid = 2;
Сеанс зависает
update test.emp set name = '11' where rid = 1;
ORA-00060: взаимная блокировка при ожидании ресурса

Ошибка ORA-00060, как написано в документации, может появиться в случайной из этих сессий.

Ссылки

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *