SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 30.06.2014 16:56:26

LetMeFun
Участник
Зарегистрирован: 30.06.2014
Сообщений: 1

Блокировки записей

Всем привет.

Недавно столкнулся с проблемой дедлоков в веб приложении, работающем с hibernate: транзакция 1 захватывает S блокировку, транзакция 2 запрашивает X блокировку, затем транзакция 1 так же запрашивает X блокировку.
Думаю, что для решения проблемы нужно избавиться от блокирующего чтения, однако в логе запросов  mysql ни одного блокирующего чтения не нашёл. Вот и не понимаю как такое возможно. Может есть какой-то ещё способ учтановить на строку S блокировку кроме LOCK IN SHARE MODE? На просторах интернета ничего путного не нашёл. Уровень изоляции - READ COMMITTED.

Неактивен

 

#2 01.07.2014 01:01:21

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Блокировки записей

Срабатывает ли автоматическое детектирование дедлоков?
На уровне "READ COMMITTED" автоматической блокировки быть не должно. При использовании транзакций нужно быть готовым к тому, что транзакция откатится. Чтобы избежать дедлоков, попробуйте (если такое возможно) бликировать все, что нужно для транзации в ее начале.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson