Processeur de planification et de livraison
Reporting Services englobe un composant processeur de planification et de livraison qui assure la prise en charge des opérations planifiées et la gestion des extensions de remise utilisées pour acheminer les rapports dans des boîtes de réception de messagerie électronique ou dans des dossiers partagés.
Le processeur de planification et de livraison est un composant interne dont se sert le serveur de rapports pour traiter les abonnements et la remise de rapports, ou pour actualiser une capture instantanée ou définir l'expiration pour un rapport mis en cache. Si vous configurez les fonctionnalités d'un serveur ou que vous tentez de résoudre un problème d'abonnement ou de remise, vous pouvez utiliser les informations dans cette rubrique pour comprendre les étapes de traitement planifié et les dépendances sur les autres services et technologies. Cette rubrique présente également les paramètres de configuration que vous pouvez utiliser pour gérer la file d'attente d'événements.
Fonctionnement du traitement des planifications et des livraisons
Le processeur de planification et de livraison présente les fonctionnalités suivantes :
Maintient une file d'attente d'événements et de notifications dans la base de données du serveur de rapports. Dans un déploiement avec montée en puissance parallèle, la file d'attente est partagée par tous les serveurs de rapports de la structure.
Appel au composant processeur de rapports pour exécuter les rapports, traiter les abonnements ou supprimer un rapport mis en cache. Le traitement des rapports qui se produit à la suite d'un événement de planification est entièrement effectué en arrière-plan.
Appelle l'extension de remise qui est spécifiée dans un abonnement de sorte que le rapport puisse être remis.
Les autres aspects d'une opération de planification et de remise sont gérés par d'autres composants et services qui fonctionnent avec le processeur de planification et de livraison. En particulier, le processeur de planification et de livraison s'exécute dans le service Report Server et utilise l'Agent SQL Server comme minuteur pour générer des événements planifiés. La procédure pas à pas suivante explique le fonctionnement des opérations planifiées dans un déploiement de Reporting Services :
Une opération planifiée est définie lorsqu'un utilisateur crée une planification. La planification définit la date et l'heure qui seront utilisées pour déclencher un abonnement pour la remise de rapport, actualiser une capture instantanée ou terminer un cache.
Le serveur de rapports enregistre les informations de planification dans la base de données du serveur de rapports.
Le serveur de rapports crée un travail correspondant dans l'Agent SQL Server qui inclut les informations de planification fournies. Les travaux sont créés à l'aide d'une procédure stockée, qui utilise la connexion ouverte existante à la base de données du serveur de rapports.
L'Agent SQL Server exécute le travail aux date et heure spécifiées dans la planification. Le travail crée un événement qui est ajouté à une file d'attente gérée par Reporting Services.
L'événement provoque le traitement d'un rapport ou d'un abonnement. Les événements sont traités lorsqu'ils sont détectés dans la file d'attente, et le rapport est traité ou remis en conséquence.
Avant que les événements ne soient traités, le processeur de planification et de livraison procède à une étape d'authentification pour vérifier que le propriétaire de l'abonnement est autorisé à consulter le rapport. Pour plus d'informations sur les abonnements, consultez Traitement des abonnements.
Reporting Services gère une file d'attente d'événements pour toutes les opérations planifiées. Il interroge régulièrement la file d'attente pour vérifier si elle contient de nouveaux événements. Par défaut, la file d'attente fait l'objet d'une analyse toutes les 10 secondes. Si vous souhaitez changer cette fréquence, modifiez les paramètres de configuration PollingInterval, IsNotificationService et IsEventService dans le fichier RSReportServer.config. Pour plus d'informations, consultez Fichier de configuration RSReportServer.
Dépendances de serveur
Il est impératif que le service Report Server et l'Agent SQL Server s'exécutent pour que le processeur de planification et de livraison fonctionne. La fonctionnalité de traitement des planifications et des livraisons doit être activée par le biais de la propriété ScheduleEventsAndReportDeliveryEnabled de la facette Configuration de la surface d'exposition pour Reporting Services de la gestion basée sur une stratégie. Enfin, les opérations planifiées ne peuvent se déclencher que si l'Agent SQL Server et le service Report Server sont en cours d'exécution.
[!REMARQUE]
Vous pouvez utiliser la facette Configuration de la surface d'exposition pour Reporting Services pour interrompre temporairement ou définitivement des opérations planifiées. Bien que vous puissiez créer et déployer des extensions de remise personnalisées, le processeur de planification et de livraison n'est en lui-même pas extensible. Vous ne pouvez pas modifier la manière dont il gère les événements et les notifications. Pour plus d'informations sur la désactivation des fonctionnalités, consultez Procédure : activer ou désactiver les fonctionnalités Reporting Services.
Conséquences de l'interruption de l'Agent SQL Server
Le traitement des rapports planifiés utilise l'Agent SQL Server par défaut. Si vous arrêtez ce service, aucune nouvelle demande de traitement ne sera ajoutée à la file d'attente à moins d'y être intégrée, par programmation, à l'aide de la méthode FireEvent. Lorsque vous redémarrez le service, les travaux à l'origine des demandes de traitement des rapports reprennent leur cours. Le serveur de rapports ne tente pas de recréer les travaux de traitement des rapports survenus précédemment tandis que l'Agent SQL Server était en mode hors connexion. Si vous arrêtez l'Agent SQL Server l'espace d'une semaine, toutes les opérations planifiées de cette semaine sont perdues.
[!REMARQUE]
La fonction assurée par l'Agent SQL Server pour Reporting Services peut être remplacée par un code personnalisé qui utilise la méthode FireEvent pour ajouter des événements planifiés dans la file d'attente.
Conséquences de l'arrêt du service Report Server
Si vous arrêtez le service Report Server, l'Agent SQL Server continue malgré tout d'ajouter des demandes de traitement de rapport à la file d'attente. Les informations d'état de l'Agent SQL Server indiquent que les travaux ont été correctement effectués. Toutefois, aucun traitement de rapport n'a, en réalité, été réalisé puisque le service Report Server ne fonctionne pas. Les demandes continueront de s'accumuler dans la file d'attente jusqu'à ce que le service Report Server redémarre. Une fois ce service relancé, toutes les demandes de traitement de rapport présentes dans la file d'attente sont traitées dans l'ordre.