Domaines d’application pour des applications du serveur de rapports
Dans Reporting Services, le serveur de rapports est implémenté comme un service unique qui contient le service Web Report Server, le Gestionnaire de rapports et une application de traitement en arrière-plan. Chaque application s'exécute dans son propre domaine d'application au sein du processus unique du serveur de rapports. Pour la plupart, les domaines d’application sont créés, configurés et gérés en interne. Toutefois, il peut s’avérer utile de savoir comment les opérations de recyclage se produisent pour les domaines d’application du serveur de rapports, si vous cherchez à résoudre des problèmes de performances ou de mémoire, ou si vous dépannez des interruptions de service.
Remarque
Si vous configurez l'accès au Générateur de rapports sur un serveur de rapports qui utilise l'authentification de base, le Générateur de rapports s'exécute dans son propre domaine d'application. Ce domaine d'application est différent d'autres domaines d'application qui s'exécutent dans le processus serveur. Il est géré par le Contrôleur de services et n’est pas affecté par les fonctionnalités de gestion de la mémoire qui réajustent l’allocation de la mémoire en réponse à sa sollicitation sur le serveur de rapports.
La liste suivante décrit les événements qui provoquent les opérations de recyclage de domaine d'application pour les applications Reporting Services :
Opérations de recyclage planifiées qui se produisent à des intervalles prédéfinis.
Modifications de configuration sur le serveur de rapports.
Modifications apportées à la configuration ASP.NET.
Échecs d'allocation de mémoire.
Le tableau suivant résume le comportement du recyclage de domaine d'application en réponse à ces événements :
Événement | Description de l'événement | S’applique à | Configurable | Description de l'opération de recyclage |
---|---|---|---|---|
Opérations de recyclage planifiées qui se produisent à des intervalles prédéfinis | Par défaut, les domaines d'application sont recyclés toutes les 12 heures. Les opérations de recyclage planifiées sont fréquentes pour les applications ASP.NET qui favorisent l’intégrité de l’ensemble du processus. |
Service Web Report Server Gestionnaire de rapports Application de traitement en arrière-plan |
Oui. Le paramètre de configurationRecycleTime du fichier RSReportServer.config détermine l'intervalle de recyclage. MaxAppDomainUnloadTime définit le temps d'attente pendant lequel le traitement en arrière-plan est autorisé à s'effectuer. |
ASP.NET gère l’opération de recyclage pour le service Web et le Gestionnaire de rapports. Pour l'application de traitement en arrière-plan, le serveur de rapports crée un domaine d'application des nouveaux travaux ayant démarré à partir de planifications. Les travaux actifs sont autorisés à terminer leur exécution dans le domaine d'application actuel jusqu'à l'expiration du délai. |
Modifications de configuration sur le serveur de rapports | Reporting Services recycle les domaines d’application en réponse aux modifications du fichier RSReportServer.config. | Service Web Report Server Gestionnaire de rapports Application de traitement en arrière-plan |
Non. | Il est impossible d’empêcher les opérations de recyclage de se produire. Toutefois, les opérations de recyclage qui se produisent en réponse à des modifications de configuration sont gérées de la même façon que les opérations de recyclage planifiées. Des domaines d'application sont créés pour les nouvelles requêtes tandis que les requêtes et travaux actifs finissent de s'exécuter dans le domaine d'application actuel. |
Modifications apportées à la configuration ASP.NET | ASP.NET recycle les domaines d’application si des modifications sont apportées aux fichiers qu’il surveille (par exemple les fichiers machine.config et Web.config, ainsi que les fichiers programme ASP.NET). | Service Web Report Server Gestionnaire de rapports |
Non. | ASP.NET gère l’opération. ASP.NET lance des opérations de recyclage qui n’affectent pas le domaine d’application du traitement en arrière-plan. |
Sollicitation de la mémoire et échecs d'allocation de mémoire | SQL Server CLR recycle immédiatement les domaines d’application en cas d’échec d’allocation de mémoire ou lorsque le serveur est soumis à une forte sollicitation de la mémoire. | Service Web Report Server Gestionnaire de rapports Application de traitement en arrière-plan |
Non. | Lorsque la sollicitation de la mémoire est élevée, le serveur de rapports n’accepte pas de nouvelles requêtes dans le domaine d’application actuel. Pendant la période où le serveur refuse les nouvelles requêtes, des erreurs HTTP 503 se produisent. Aucun domaine d’application n’est créé tant que l’ancien domaine d’application n’est pas déchargé. Cela signifie que si vous modifiez un fichier de configuration alors que le serveur est soumis à une forte sollicitation de la mémoire, les requêtes et travaux en cours d’exécution risquent de ne pas démarrer. En outre, ils peuvent ne pas se terminer comme prévu. En cas d’échec d’allocation de mémoire, tous les domaines d’application redémarrent immédiatement. Les travaux et requêtes en cours d'exécution sont supprimés. Vous devez les redémarrer manuellement. |
Opérations de recyclage planifiées et non planifiées
Les opérations de recyclage sont planifiées ou non planifiées en fonction des conditions qui en sont à l'origine :
Les opérations de recyclage planifiées se produisent à des intervalles réguliers définis dans le fichier
RSReportServer.config
. L'intervalle par défaut est de 12 heures. Ce paramétrage est une pratique courante pour les applications ASP.NET qui favorisent l’intégrité globale du processus. Pour les opérations de recyclage planifiées, le serveur de rapports crée d’autres domaines d’application pour les nouvelles requêtes. Les requêtes actives sont autorisées à terminer leur exécution dans le domaine d'application actuel jusqu'à l'expiration du délai. Les paramètres de configuration qui régissent les opérations de recyclage planifiées sont définis pour l'ensemble du serveur. Il n’est pas possible de configurer une planification du recyclage différente ou un seuil de mémoire différent pour chaque application.Les opérations de recyclage non planifiées se produisent de manière arbitraire en réponse à des modifications de configuration, une sollicitation de la mémoire et des échecs d'allocation de mémoire :
Pour les modifications de configuration, le serveur de rapports essaie d’utiliser un recyclage léger qui redirige les nouvelles requêtes vers une nouvelle instance du domaine d’application. En cas d'échec du recyclage léger, le serveur démarre un recyclage forcé du domaine d'application, ce qui entraîne l'annulation de toutes les requêtes actives, l'arrêt des domaines d'application actuels et le redémarrage des domaines d'application.
Les échecs d'allocation de mémoire indiquent que les ressources système sont insuffisantes pour la quantité de rapports à traiter par le serveur. Une opération de recyclage forcée pour tous les domaines d'application se produit en réponse à un échec d'allocation de mémoire. Toutes les files d'attente des requêtes sont effacées. Les requêtes annulées ne sont pas redémarrées. Les utilisateurs qui consultaient un rapport de manière interactive doivent actualiser ou rouvrir ce dernier. Le traitement planifié a lieu au prochain horaire prévu. Si le délai est inacceptable, vous pouvez actualiser un instantané de rapport manuellement, ou modifier une planification d'abonnement ou une planification d'instantané de rapport, afin qu'elle s'exécute immédiatement.
Les domaines d'application du service Web Report Server, du Gestionnaire de rapports et de l'application de traitement en arrière-plan peuvent être recyclés ensemble ou individuellement, selon les circonstances dans lesquelles le recyclage se produit :
Les opérations de recyclage débutées par ASP.NET affectent uniquement les applications Reporting Services ASP.NET : service Web Report Server et Gestionnaire de rapports. ASP.NET recycle les domaines d’application en fonction des modifications apportées aux fichiers qu’il surveille. ASP.NET lance des opérations de recyclage qui sont généralement indépendantes des opérations de recyclage de l’application de traitement en arrière-plan.
En règle générale, les opérations de recyclage débutées par le serveur de rapports affectent le service Web Report Server, le Gestionnaire de rapports et l'application de traitement en arrière-plan. Les opérations de recyclage se produisent en réponse aux modifications des paramètres de configuration et aux redémarrages du service.
Paramètres de configuration de RSReportServer pour les domaines d’application
Les paramètres de configuration sont spécifiés dans le fichier RSReportServer.config. L'exemple suivant illustre les paramètres de configuration par défaut pour le comportement du recyclage de domaine d'application planifié.
<RecycleTime>720</RecycleTime>
<MaxAppDomainUnloadTime>30</MaxAppDomainUnloadTime>
Le tableau suivant décrit ces éléments.
Élément | S’applique à | Définition |
---|---|---|
RecycleTime | Les trois domaines d’application Reporting Services | Spécifie la fréquence à laquelle les domaines d'application sont recyclés. La planification du recyclage par défaut est conforme au modèle de 12 heures adopté généralement pour le recyclage de domaine d’application ASP.NET. Au moment prévu, l'ensemble des nouvelles requêtes est transmis à une nouvelle instance du domaine d'application. Les requêtes actives dans l'instance d'origine sont autorisées à terminer leur exécution. Une fois tous les processus terminés, l'instance d'origine est supprimée et la nouvelle instance devient la seule et unique instance active du domaine d'application. La valeur par défaut est 720 minutes. |
MaxAppDomainUnloadTime | Un domaine d'application de traitement en arrière-plan uniquement | Par défaut, un serveur de rapports alloue un délai d'attente de 30 minutes, durant lequel un domaine d'application est autorisé à s'arrêter au cours d'une opération de recyclage. |
Si les travaux en cours de traitement ne peuvent pas être terminés dans le délai imparti, l’instance de domaine d’application est redémarrée immédiatement. De même, si un travail dépasse le temps d’attente spécifié, l’instance de domaine d’application est également redémarrée rapidement. Tous les travaux inachevés prennent fin. Pour plus d’informations sur l’état ou l’annulation des travaux qui s’exécutent sur le serveur de rapports, consultez Annuler les travaux du serveur de rapports (Management Studio). |
Notes
Bien que le service Web Report Server et le Gestionnaire de rapports soient des applications ASP.NET, aucune d’entre elles ne répond au recyclage de domaine d’application planifié qui peut être spécifié dans machine.config pour les applications ASP.NET hébergées dans les services IIS (Internet Information Services).