2016-11-25 2 views
2

У нас есть группа доступности SQL Server 2014 AlwaysOn, к которой мы подключаемся через стандартные объекты C# SqlConnection. Мы хотим поймать исключения, которые происходят, когда отказоустойчивость запускается вручную или автоматически и повторяет команду после периода ожидания.Какие коды ошибок SQL следует повторить?

Мы не просто хотим повторять каждую команду, которая терпит неудачу, а только транзакции, которые не удались из-за отказа.

Подготавливает ли Microsoft список (или есть список где-нибудь) кодов ошибок, которые мы можем проверить?

ответ

0

Microsoft имеет строить Transient Error Strategy Detection для Azure один раз для использования в блоке приложений обработки переходных ошибок.

Блок приложений для обработки переходных процессов (Topaz) делает ваше приложение более надежным, обеспечивая логику обработки кратковременных сбоев. Он делает это двумя способами.

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

Они определили коды ошибок sql, которые указывают на переходный отказ. Хотя он предназначен для облака (для Azure Sql Server), мы успешно использовали его в нашей собственной локальной среде.

Вы можете посмотреть на свой код и извлечь SQL коды вы можете проверить:

http://topaz.codeplex.com/SourceControl/latest#source/Source/TransientFaultHandling.Data/SqlDatabaseTransientErrorDetectionStrategy.cs