Лучший способ временно отключить приложение во время работы агента sql - PullRequest
1 голос
/ 04 ноября 2008

У меня есть приложение ASP.NET, которое работает с базой данных SQL Server 2005. Раз в день мне нужно запускать серию пакетов procs & SSIS в задании агента SQL для обновления данных в таблицах. Задание агента SQL будет выполняться по расписанию без присмотра.

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

Я вижу, что могу использовать файл app_offline.htm в корне сайта веб-приложения. Чтобы сделать это, мне нужно было бы предоставить разрешения на серверы для пакета агента SQL, чтобы он мог что-то вроде ren app_offline.tmp app_offline.htm на веб-сервере, выполнить шаги, а затем вернуть файл htm обратно в .tmp.

Другой вариант, который я рассматривал, состоял в том, чтобы поместить логическое значение «MAINTMODE» в таблицу, которая обновляется заданием агента SQL, и заставить веб-приложение проверять его при каждом обращении к БД, чтобы убедиться в его доступности. Если это не так, перенаправьте на страницу, которая указывает, что сайт временно отключен.

Есть ли другие подходы, которые я должен рассмотреть? Каков наилучший подход к минимальному нарушению работы пользователей?

Спасибо

Chris

1 Ответ

1 голос
/ 04 ноября 2008

Я бы использовал предложенный вами метод «MAINTMODE». Таким образом, он срабатывает только в том случае, если запрос попадает на ваш веб-сервер. Для простоты вашим серверам баз данных не нужно общаться с вашими веб-серверами. Пусть ваши веб-серверы обрабатывают презентацию, а ваши серверы баз данных должны сосредоточиться на базе данных.

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