Conseils pour éviter que les rapports de longue durée n'expirent

<! – ->

S'applique à: Microsoft Dynamics AX 2012 R3, Microsoft Dynamics AX 2012 R2, Microsoft Dynamics AX 2012 Feature Pack, Microsoft Dynamics AX 2012

Microsoft Dynamics AX utilise Microsoft SQL Server Reporting Services pour rendre les rapports. Reporting Services récupère les données de rapport du serveur d'objets d'application Microsoft Dynamics AX (AOS) à l'aide d'une extension personnalisée qui utilise Windows Communication Foundation (WCF) pour communiquer avec l'AOS.

La taille de l'ensemble de données et la complexité du rapport rendu peuvent affecter le temps nécessaire pour afficher le rapport. En outre, si divers délais d'expiration et autres seuils sont atteints, le rendu du rapport peut échouer. Cette rubrique fournit des conseils qui peuvent vous aider à empêcher l'expiration des rapports qui s'exécutent pendant une longue période.

Utiliser des classes RDP prétraitées

Si le rapport utilise le fournisseur de données de rapport (RDP) pour récupérer des données, le rapport doit être modifié pour utiliser une classe RDP prétraitée comme source de données, afin que la logique de traitement soit appelée avant qu'un appel soit effectué à Reporting Services. Pour plus d'informations sur les classes RDP, consultez Utilisation des classes de fournisseur de données de rapport pour accéder aux données de rapport et Guide de programmation de rapports.

Spécifier le délai d’expiration du rapport

Reporting Services a un délai d'exécution du rapport période, qui définit le nombre de secondes après lequel le traitement du rapport expire. La valeur par défaut pour cette période est de 30 minutes. Si l'exécution du rapport nécessite plus de temps, l'exécution du rapport échoue.

Vous pouvez spécifier le délai d'expiration de l'exécution du rapport pour tous les rapports en configurant les paramètres de délai d'expiration au niveau du site Reporting Services. Vous pouvez également spécifier le délai d'expiration de l'exécution du rapport pour un rapport spécifique.

Spécifiez le délai d’expiration du rapport pour tous les rapports

La période d'expiration du délai d'exécution du rapport au niveau du site Reporting Services doit être définie sur une valeur supérieure au temps requis pour afficher votre rapport le plus volumineux. Sinon, l'exécution du rapport peut être définie de manière à ne jamais expirer. Vous pouvez spécifier le délai d'expiration de l'exécution du rapport dans le Gestionnaire de rapports ou SQL Server Management Studio.

Si vous souhaitez spécifier le délai d'expiration de l'exécution du rapport à l'aide du Gestionnaire de rapports, procédez comme suit.

  1. Ouvrez le site Web du Gestionnaire de rapports pour l'instance Reporting Services. Par défaut, l'URL est http: // (SSRSServerName): 80 / Reports.

  2. Cliquez sur Paramètres du site. le Propriétés La page s'affiche.

  3. dans le Délai d'expiration du rapport section, spécifiez un délai d'expiration en entrant le nombre de secondes. Vous pouvez également choisir de ne pas avoir de période de temporisation.

  4. Cliquez sur Appliquer pour enregistrer vos modifications.

Si vous souhaitez spécifier le délai d'expiration de l'exécution du rapport à l'aide de SQL Server Management Studio, procédez comme suit.

  1. Ouvrez SQL Server Management Studio et connectez-vous à votre instance Reporting Services.

  2. dans le Explorateur d'objets volet, cliquez avec le bouton droit sur le nom de votre serveur de rapports, puis sélectionnez Propriétés. le Propriétés du serveur la fenêtre s'affiche.

  3. dans le Sélectionnez une page zone, cliquez Exécution.

  4. Spécifiez un délai d'expiration en saisissant le nombre de secondes. Vous pouvez également choisir de ne pas avoir de période de temporisation.

  5. Cliquez sur D'accord pour enregistrer vos modifications.

Spécifier le délai d’expiration du rapport pour un rapport spécifique

Pour spécifier le délai d'expiration de l'exécution du rapport pour un rapport spécifique, procédez comme suit.

  1. Ouvrez le site Web du Gestionnaire de rapports pour l'instance Reporting Services. Par défaut, l'URL est http: // (SSRSServerName): 80 / Reports.

  2. Clique le DynamicsAX dossier. Les rapports Microsoft Dynamics AX sont répertoriés.

  3. Passez la souris sur un rapport spécifique, cliquez sur la flèche déroulante, puis sur Gérer. La page des propriétés s'affiche.

  4. Clique le Options de traitement languette.

  5. dans le Délai d'expiration du rapport section, spécifiez un délai d'expiration en entrant le nombre de secondes. Vous pouvez également choisir de ne pas avoir de période de temporisation.

  6. Cliquez sur Appliquer pour enregistrer vos modifications.

Spécifiez le délai d'expiration de la session utilisateur

Reporting Services maintient une session utilisateur, qui peut expirer si l'exécution du rapport prend du temps. Si la session utilisateur expire, le rendu du rapport échoue. Vous pouvez résoudre ce problème en configurant deux propriétés, Expiration de la session et SessionAccessTimeout, à l'aide de l'outil rs.exe. Ces propriétés doivent être définies sur une valeur supérieure à la durée requise pour afficher votre rapport le plus volumineux.

Sur le serveur Reporting Services, procédez comme suit pour configurer le Expiration de la session et SessionAccessTimeout Propriétés.

Attention

Le fait de conserver une session utilisateur plus longtemps que nécessaire peut augmenter la taille de votre base de données ReportServerTempDB, car les instantanés de session temporaires ne vieilliront pas aussi souvent.

  1. Créez un fichier SessionTimeout.rss en suivant ces étapes:

    1. Ouvrez le Bloc-notes.

    2. Copiez le code suivant dans le Bloc-notes.

      Public Sub Main()
          Dim props() as (Property)
          props = new (Property) () { new (Property)(), new (Property)() }
      
          props(0).Name = "SessionTimeout"
          props(0).Value = timeout
      
          props(1).Name = "SessionAccessTimeout"
          props(1).Value = timeout
      
          rs.SetSystemProperties(props)
      End Sub
      
    3. Enregistrez le fichier sur le disque dur local sous SessionTimout.rss.

  2. Ouvrez une fenêtre d'invite de commandes.

  3. Exécutez le script que vous avez créé à l'étape 1 en entrant la commande suivante. Gardez à l'esprit les points suivants:

    • Par défaut, l'URL du serveur de rapports est http: // (SSRSServerName): 80 / ReportServer.

    • La valeur du délai d'expiration est exprimée en secondes. Dans l'exemple ci-dessous, le Expiration de la session et SessionAccessTimeout les propriétés sont définies sur 20 heures.

    $>rs.exe -i  -s  -v timeout="72000" –l 0
    

    Par défaut, l'outil rs.exe se trouve dans Program Files Microsoft SQL Server 110 Tools Binn. Pour plus d'informations sur l'utilisation de cet outil, consultez la rubrique de l'utilitaire rs (rs.exe) dans la documentation de SQL Server et l'article de blog Délai d'expiration de la session pendant l'exécution.

Spécifier les délais d'expiration et les seuils WCF

Reporting Services utilise le service de requête Microsoft Dynamics AX pour récupérer des données. Le service de requête Microsoft Dynamics AX est un service WCF qui est exposé par l'AOS. Pour les rapports qui ont de grands ensembles de données, la configuration WCF par défaut peut amener WCF à atteindre certains délais et seuils au moment de l'exécution. Pour éviter ce problème, vous pouvez modifier la configuration WCF des manières suivantes.

Configurer les paramètres côté serveur

Suivez ces étapes pour configurer les paramètres WCF côté serveur. Effectuez ces étapes sur le serveur AOS.

  1. Ouvrez le fichier Ax32Serv.exe.config. Ce fichier se trouve généralement dans Program Files Microsoft Dynamics AX Serveur MicrosoftDynamicsAX Bin.

  2. Trouvez le QueryServiceBinding élément.

    
      
        
          
            
              
            
    
  3. La valeur par défaut du sendTimeout propriété sur cet élément est de 10 minutes. Augmentez la valeur du sendTimeout propriété. Par exemple, définissez la valeur sur 30 minutes.

  4. Enregistrez vos modifications.

Configurer les paramètres côté client

Reporting Services communique avec l'AOS pour récupérer des données. Dans ce processus de communication, Reporting Services agit en tant que client et l'AOS agit en tant que serveur. Par conséquent, pour configurer les paramètres WCF côté client, vous devez suivre ces étapes sur le serveur sur lequel Reporting Services est installé.

  1. Créez une nouvelle configuration client locale comme expliqué dans Gérer une configuration client.

  2. Alors que l'utilitaire de configuration est toujours ouvert, cliquez sur le Connexion languette.

  3. Clique le Configurer les services bouton.

  4. Un message s'affiche indiquant que la configuration ne sera plus mise à jour automatiquement après une modification du serveur. Cliquez sur D'accord.

  5. Un message peut s'afficher indiquant que vous devez installer le SDK Windows pour Windows Server et Microsoft .NET Framework version 4.0. Dans ce cas, téléchargez et installez le SDK Windows pour Windows Server et le .NET Framework version 4.0.

    Après avoir installé le SDK Windows, connectez-vous à la configuration client que vous avez créée à l'étape 1. Répétez ensuite les étapes 2 et 3 pour ouvrir l'éditeur de configuration de service Microsoft.

  6. dans le Configuration zone, cliquez Fixations > QueryServiceEndpoint (netTcpBinding).

  7. Sur le Fixations onglet, modifiez les propriétés suivantes:

    • SendTimeout – Par défaut, cette propriété est définie sur 10 minutes. Augmentez la valeur. Par exemple, définissez la valeur sur 30 minutes.

    • MaxReceivedMessageSize – Par défaut, cette propriété est définie sur 2147483647. Augmentez la valeur. Par exemple, si vous souhaitez doubler la valeur, définissez-la sur 4294967294. La valeur maximale autorisée est Int64.MaxValue.

  8. Cliquez sur Fichier > sauvegarder.

Utiliser le traitement par lots

Pour améliorer les performances lorsque vous imprimez des relevés ou des rapports contenant de grandes quantités de données, utilisez le traitement par lots. Lorsque vous utilisez le traitement par lots, vous pouvez exécuter des tâches spécifiques en tant que travaux par lots, puis planifier l'exécution de ces travaux par lots sur un autre ordinateur (un serveur de lots). Lorsque vous déplacez le traitement de ces tâches vers un serveur de traitement par lots, les performances du rapport sur l'ordinateur client peuvent s'améliorer. Vous pouvez également appliquer des restrictions de plage pour limiter la taille de chaque lot. Vous pouvez améliorer les performances en soumettant plusieurs lots plus petits à traiter en même temps sur différents serveurs, au lieu de soumettre un lot volumineux.

De nombreuses tâches dans Microsoft Dynamics AX peuvent être exécutées dans le cadre de travaux par lots. Pour plus d'informations, voir Présentation du traitement par lots.

<! – ->

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

commodo dolor Phasellus odio Curabitur venenatis