Транзакция была заблокирована - PullRequest
2 голосов
/ 07 января 2011

Я получаю следующее исключение sql: Транзакция была заблокирована для ресурсов блокировки с другим процессом и была выбрана в качестве жертвы тупика. Перезапустите транзакцию. В конце пакета обнаруживается незафиксированная транзакция. Сделка откатывается. У меня нет транзакций в хранимых процедурах, я выполняю транскрипцию из .net и всегда вызываю их с помощью. Ребята, вы встречались с этим раньше?

Ответы [ 2 ]

3 голосов
/ 07 января 2011

Транзакция - это транзакция, независимо от того, где она началась. Будь то в C # или RDBMS.

Ваши using эффективно выдают НАЧАЛО ПЕРЕВОДА.

MSDN (для SQL Server 2000, но все еще действует) рекомендует автоматически повторять попытку при обнаружении взаимоблокировки. Вместо того, чтобы писать здесь код, в Google есть много результатов, которые вы можете просмотреть.

0 голосов
/ 07 января 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...