Я получаю эту ошибку очень часто, но не постоянно на двух страницах в приложении, которое находится в производственной среде. У меня есть только несколько снимков экрана с ошибкой ниже.
Транзакция (идентификатор процесса XX) зашла в тупик при блокировке | ресурсы буфера обмена данными с другим процессом и был выбран в качестве жертвы тупика. Повторите транзакцию.
Каким должен быть подход к устранению этой ошибки. Сервер базы данных - это SQL Server 2005.





Это статья Брэда МакГихи - хорошее место для начала.
Вот библия по устранению неполадок в тупиках:
http://blogs.msdn.com/bartd/archive/2006/09/09/Deadlock-Troubleshooting_2C00_-Part-1.aspx
Это было в сентябре, вы об этом говорите? stackoverflow.com/questions/52566/…
См. Также здесь: Предупреждающие уведомления о взаимоблокировках
Я не хочу показаться отрицательным, но использование событий взаимоблокировки профилировщика - это обычное место для начала в SQL Server 2005, а не флаги трассировки.
Вы можете сделать то, что предлагает сообщение об ошибке, и заставить программу повторить транзакцию!
Однако очень сильно зависит от того, насколько «атомарна» транзакция! т.е. если вы зашли в тупик, вероятно, какой-то другой процесс успешно обновил интересующую вас строку. Имеет ли смысл применять обновление к строке в этих обстоятельствах?
По крайней мере, представьте пользователю более приятное сообщение об ошибке («Другой пользователь изменил xxxx, который вы пытались обновить. Просмотрите новые значения и повторите попытку.)
При возникновении ошибок необходимо запустить трассировку профиля взаимоблокировки. статья Брэда МакГихи - это обзор. Вам необходимо идентифицировать два процесса, вызывающих нарушение. После этого просмотрите код на двух страницах, чтобы узнать, какие команды SQL выполняются и как часто. В большинстве случаев я обнаружил, что простой просмотр выполняемого кода SQL и знание того, как часто он выполняется, быстро выявит конфликт. Иногда требуется больше времени, чтобы исправить это ...
разве вы не ответили точно таким же ответом на другой вопрос ?! :-)