2008-11-04 6 views
1

J'ai une application ASP.NET qui s'exécute sur une base de données SQL Server 2005. Une fois par jour, j'ai besoin d'exécuter une série de packages SSIS & dans un travail SQL Agent pour mettre à jour les données dans les tables. Le travail SQL Agent s'exécutera sur une planification sans assistance.Meilleure façon de mettre temporairement l'application hors connexion pendant le travail de l'agent SQL

Il existe de petites fenêtres d'opportunité pour l'application Web d'échouer lorsque les étapes du travail SQL Agent sont en cours d'exécution, donc je souhaite désactiver temporairement l'application complètement, exécuter les étapes sensibles, puis réactiver l'application.

Je vois que je pourrais utiliser le fichier app_offline.htm à la racine du site de l'application web. Pour ce faire, je devrais fournir des autorisations sur les serveurs au package SQL Agent afin qu'il puisse faire quelque chose comme ren app_offline.tmp app_offline.htm sur le serveur Web, exécutez les étapes, puis renommez le fichier htm en .tmp. L'autre option que je considérais consistait à placer un booléen 'MAINTMODE' dans une table mise à jour par le travail de l'Agent SQL et à ce que l'application Web vérifie chaque appel de la base de données pour s'assurer qu'elle est disponible. Si ce n'est pas le cas, redirigez-vous vers une page indiquant que le site est temporairement hors ligne.

Y a-t-il d'autres approches que je devrais envisager? Quelle est la meilleure approche pour perturber le moins possible les utilisateurs?

Merci,

Chris

Répondre

1

j'utiliser la méthode 'MAINTMODE' vous proposiez. De cette façon, il est seulement déclenché si une demande frappe votre serveur Web. Vos serveurs de base de données ne devraient pas avoir à parler à vos serveurs Web par souci de simplicité. Laissez vos serveurs Web gérer la présentation, laissez vos serveurs de base de données se concentrer sur la base de données.

Questions connexes