Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Ошибка при работе с БД  [new]
ARusov
Member

Откуда:
Сообщений: 181
Есть сервер бд
есть несколько клиентских машин с WinForms приложениями на сиШарпе
при работе стала появляться ошибка:
транзакция (идентификатор процесса 57) вызвала взаимоблокировку
в чем беда? СУБД MS SQL Server 2008
7 сен 11, 14:58    [11241212]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при работе с БД  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
ARusov,

Видимо в ней и беда. Вот гляньте сюда, недавно было.
7 сен 11, 15:01    [11241241]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при работе с БД  [new]
ARusov
Member

Откуда:
Сообщений: 181
Мда, спасибо!
В общем, я новичок в этом я даже не знаю что тут делать
7 сен 11, 15:10    [11241345]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при работе с БД  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
ARusov
Мда, спасибо!
В общем, я новичок в этом я даже не знаю что тут делать
Специалиста тогда позовите.
7 сен 11, 15:12    [11241360]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при работе с БД  [new]
ARusov
Member

Откуда:
Сообщений: 181
и эта ошибка появляется не всегда!
7 сен 11, 15:12    [11241368]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка при работе с БД  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
ARusov
и эта ошибка появляется не всегда!
Знамо дело. Появляется когда возникает описанная выше ситуация, а возникнуть она может благодаря стечению обстоятельств, когда пользователи выполнят запросы одновременно именно в тот момент и в той последовательности, которая приведет к взаимоблокировке.
Там жеж по ссылке написано как бороться, во первых, выясните как это происходит используя трассировку и граф взаимоблокировки, во вторых попробуйте реорганизовать логику так, чтобы транзакции выполнялись по другому, а если это неприемлемо - сделайте обертку для вызова транзакции, лучше всего наверное на клиенте, которая в случае этой ошибки, будет запускать транзакцию повторно.
7 сен 11, 15:24    [11241557]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить