Рисунок 6
-
14. Колонка «Строки подключения к базе данных».
Строки подключения к базе данных SQL Azure похожи на строки, которые используются для SQL Server.
Например, строка подключения на ADO.NET имеет следующий формат:
Обратите внимание: строка подключения устанавливает для свойства
TrustServerCertificate
значение
False
, а
для свойства
Encrypt
—
значение
True
. Это
делается для того,
чтобы обеспечить
дополнительную защиту подключений к базе данных SQL Azure
через Интернет от атак типа
«злоумышленник в середине» (man
-in the-
middle). База данных SQL Azure будет принимать
только
зашифрованные соединения вне зависимости от значения параметра.
При написании программного кода, который взаимодействует с базой данных SQL Azure, важно
реализовать в нем защиту от временных ошибок. Временными называются ошибки, которые проявляются
непостоянно и, вероятнее всего, не возникнут уже при повторном выполнении команды.
При работе с базой данных SQL Azure такие ошибки возникают чаще, чем при подключении по локальной
сети. Этому есть несколько причин: Интернет по своей сути является ненадежной сетью, а база данных SQL
Azure представляет собой управляемую службу c периодически выполняемым техническим
обслуживанием, в ходе которого соединения могут временно прерываться. В приложениях должна быть
реализована защита от временных ошибок. Для этого необходимо добавить логику, которая осуществляет
повторные попытки при создании подключений или при отправке команд для базы данных SQL Azure.
Механизм повторных попыток должен иметь задержку, достаточную для восстановления службы после
первоначальной ошибки. Он не должен перегружать платформу быстрыми попытками переподключения.
Кроме того, рекомендуется добавить параметры, регулирующие максимальное количество попыток и
(или) интервал времени между повторными попытками. Часто для решения таких задач подходит
алгоритм экспоненциальной выдержки с предварительно заданным максимальным количеством попыток
—
рекомендуется проверить, как он работает в вашем приложении.
Если вы разрабатываете приложения .NET с использованием Entity Framework, то полезно знать, что Entity
Framework 6 поддерживает логику обеспечения устойчивости соединений и повторных попыток, которая
умеет обнаруживать временные ошибки базы данных SQL Azure и пытаться выполнить команду повторно.
Если вы разрабатываете другие приложения .NET, библиотека Enterprise Library 5 и 6 (см.
http://msdn.microsoft.com/library/ff648951.aspx
) команды Microsoft Patterns & Practices содержит блок
приложений, который называется Transient Fault Handling Application Block. Эта библиотека также
позволяет обнаруживать временные ошибки и пытаться выполнить команды повторно.
Достарыңызбен бөлісу: