Partager via


Suivi (Master Data Services)

S’applique à : SQL Server - Windows uniquement Azure SQL Managed Instance

Une fois que vous avez installé Master Data Services (MDS), vous pouvez trouver la fonctionnalité de journalisation du suivi utile pour les diagnostics d’erreurs, les demandes de support et la surveillance de l’utilisation et des performances de l’application. Cet article décrit les étapes à suivre pour activer et configurer la journalisation du suivi. Plus précisément, cet article traite du suivi dans un fichier journal texte. Cet article décrit également la procédure de création d’un fichier journal qui peut aider à résoudre les échecs qui peuvent se produire lors de la création d’une base de données MDS.

Background

Master Data Services se compose d’une application web ASP.NET (Master Data Manager) et d’un service WCF ; les deux sont hébergés dans IIS et dans une base de données SQL Server. Les requêtes Master Data Manager et les appels externes au point de terminaison de l’API des services web sont gérés par une couche de service commune. La couche de service peut consigner chaque demande/réponse d’opération, les événements importants et les erreurs.

En tant qu’administrateur disposant d’un accès aux fichiers sur le serveur web IIS, vous pouvez activer la journalisation en modifiant le fichier Web.config MDS.

Par défaut, le fichier Web.config se trouve dans l’un des dossiers d’application web suivants :

  • SQL Server 2008 R2 : program_files\Microsoft SQL Server\Master Data Services\WebApplication

  • SQL Server 2012 et les versions ultérieures : program_files\Microsoft SQL Server\<nnn>\Master Data Services\WebApplication

Les nombres nnn figurant dans le chemin correspondent à la version installée de SQL. Le tableau suivant identifie les versions des chemins :

Version nnn
SQL Server 2019 150
SQL Server 2017 140
SQL Server 2016 130
SQL Server 2014 120
SQL Server 2012 110

Attention

La mise à jour de Web.config entraîne le recyclage du domaine d’application MDS dans IIS. Les sessions utilisateur existantes perdent des informations mises en cache et les utilisateurs peuvent rencontrer des erreurs de session ou des chargements de pages lents. Effectuez des modifications aux heures creuses si possible.

Suivi de la journalisation pour l’application web MDS

SQL Server 2016 et versions ultérieures

Le fichier Web.config contient une section de suivi, comme indiqué ci-dessous. Cette section est introduite dans SQL Server 2016 (13.x) Master Data Services.

<sources>  
     <!-- Adjust the switch value to control the types of messages that should be logged.   
           https://msdn.microsoft.com/library/system.diagnostics.sourcelevels  
           Use a switchValue of Verbose to generate a full log. Please be aware that   
           the trace file can get quite large very quickly. -->  
     <source name="MDS" switchType="System.Diagnostics.SourceSwitch" switchValue="Warning, ActivityTracing">  
          <listeners>  
          <!-- Set a directory path where the service account you chose while setting up Master Data Services has read and write privileges.  
               Default path is Logs in WebApplication folder, for example C:\Program Files\Microsoft SQL Server\130\Master Data Services\WebApplication  
               New log file will be created every day or every 10 mb.  
               When directory size hits the 200 mb limitation, the oldest file will be deleted. -->  
          <add name="FileTraceListener"  
               type="Microsoft.MasterDataServices.Core.Logging.FileTraceListener, Microsoft.MasterDataServices.Core"   
               initializeData="DirectoryPath = Logs; FileSizeInMb = 10; MaxDirectorySizeInMb = 200"/>  
          <remove name="Default"/>  
          </listeners>  
     </source>  
</sources>

Voici le comportement de suivi par défaut :

  • Le suivi est activé pour les messages Warning et ActivityTracing.

    Pour plus d’informations, voir SourceLevels, énumération.

  • Les journaux sont enregistrés dans le dossier Logs sous le dossier WebApplication. L’emplacement par défaut est le suivant : C:\Program Files\Microsoft SQL Server\nnn\Master Data Services\WebApplication\Logs.

  • Un fichier est créé quotidiennement ou tous les 10 Mo.

  • Lorsque la taille de l’annuaire atteint 200 Mo, le journal le plus ancien est supprimé.

  • Le journal est au format CSV. Le tableau qui suit décrit le format du journal :

    Element Description
    Temps Date de l’entrée de suivi
    CorrelationID Un ID de corrélation est affecté à chaque demande. Tous les suivis déclenchés par la demande partagent le même ID de corrélation.
    Lorsqu’une erreur se produit dans l’interface utilisateur, l’ID de corrélation apparaît dans le message d’erreur
    Operation Nom de l’opération de demande. Si la demande est une demande de l’interface utilisateur Web, le nom de l’opération correspond à l’URL. Si la demande est une demande API, le nom de l’opération correspond au nom du service
    Niveau Niveau de cette entrée de suivi
    Message Corps du message de suivi.

SQL Server 2014 et versions antérieures

Section Diagnostics à partir du fichier Web.config installé à l’origine

L’extrait de fichier suivant montre la section diagnostics du fichier Web.config installé à l’origine.

Remarque

La propriété switchValue a la valeur Off. En outre, les exemples de lignes sont commentés. Ces lignes sont des exemples d’ajout d’écouteurs de trace de différents types.

<system.diagnostics>  
     <sources>  
     <!-- Adjust the switch value to control the types of messages that should be logged. -->  
          <source name="MDS" switchType="System.Diagnostics.SourceSwitch" switchValue="Off">  
          <listeners>  
          <!-- Enable and configure listeners as desired to obtain trace messages. -->  
          <!-- <add name="LogFileListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="MdsTrace.log" traceOutputOptions="DateTime" /> -->  
          <!-- <add name="EtwListener" type="System.Diagnostics.Eventing.EventProviderTraceListener, System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"  
          initializeData="{F2A341B8-CA5F-49ad-B00C-A82D3FCF948B}"/> -->  
          <!-- <remove name="Default"/> -->  
          </listeners>  
         </source>  
     </sources>  
     <trace autoflush="true"/>  
</system.diagnostics>

Activation du suivi des fichiers journaux

Pour activer la journalisation, passez de switchValue à All ou une autre valeur valide, comme décrit ci-dessous dans le tableau 1. Pour activer la sortie dans un fichier journal, supprimez les marques de commentaire de la ligne LogFileListener, comme indiqué dans l’extrait de fichier suivant :

<system.diagnostics>  
     <sources>  
          <!-- Adjust the switch value to control the types of messages that should be logged. -->  
          <source name="MDS" switchType="System.Diagnostics.SourceSwitch" switchValue="All">  
          <listeners>  
          <!-- Enable and configure listeners as desired to obtain trace messages. -->  
          <add name="LogFileListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="MdsTrace.log" traceOutputOptions="DateTime"/>  
          <!-- <add name="EtwListener" type="System.Diagnostics.Eventing.EventProviderTraceListener, System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" initializeData="{F2A341B8-CA5F-49ad-B00C-A82D3FCF948B}"/> -->  
          <!-- <remove name="Default"/> -->  
          </listeners>
          </source>  
     </sources>  
     <trace autoflush="true"/>  
</system.diagnostics> 
Tableau 1 : paramètres SwitchValue pour la journalisation
Setting Quels sont les éléments consignés ?
Désactivé rien
Erreur erreurs uniquement
Avertissement erreurs et avertissements
Information Les erreurs, les avertissements et les messages à contenu informatif
Commentaires « Informations » et autres informations de suivi de débogage, y compris les requêtes et réponses d’API au format XML
ActivityTracing événements Start et Stop uniquement
Tous « Verbose » et « ActivityTracing »
Nom et chemin de fichier

La valeur initializeData est le nom du fichier journal. Cela peut être modifié en un autre nom ou inclure un chemin d’accès souhaité. Si le chemin d’accès n’est pas spécifié, le fichier est défini par défaut sur le chemin du répertoire d’application web (où réside Web.config).

Important

Le compte de service du pool d’applications MDS doit avoir un accès en écriture à l’emplacement du fichier journal.

Niveau de journalisation des détails

Le tableau 2 ci-dessous décrit les catégories d’événements de suivi qui peuvent être enregistrés ou triés avec les événements les plus importants/critiques en haut. Le tableau 1 ci-dessus répertorie les paramètres valides pour la journalisation switchValue. Ce paramètre peut être ajusté pour produire la quantité appropriée de détails de journalisation en fonction de la situation.

Tableau 2 : types d’événements de journalisation MDS
Type d'événement Description
Critique erreur irrécupérable ou panne d’application
Erreur erreur récupérable
Avertissement problème non critique
Information message d’information
Commentaires un message de suivi de débogage
Démarrer démarrage d’une opération logique
Stop arrêt d’une opération logique

Recommandations pour le paramétrage du journal

  • Pour une opération normale, utilisez le paramètre Off pour éviter la journalisation complètement ou utilisez les paramètres Error ou Warning qui conservent le journal petit tout en alertant les administrateurs des problèmes.
  • Utilisez le paramètre All pour les situations de support/résolution des problèmes.
  • Utiliser ActivityTracing pour la mesure des performances ou la surveillance de l’utilisation.
  • Utilisez Information uniquement si vous êtes prêt à vérifier et nettoyer régulièrement les journaux. Les journaux d’activité peuvent être longs avec ce paramètre. Ce paramètre est utile pour suivre l’utilisation et les modèles d’utilisation.
  • N’utilisez pas Verbose ou All dans des conditions d’exploitation normales, car le volume de données journalisées affecte négativement les performances.

Étapes de création d’un fichier journal pour la prise en charge du produit

Dans les cas où une erreur inattendue se produit et que d’autres diagnostics sont nécessaires, il est utile de créer un fichier journal qui suit les événements menant au problème, ainsi que les demandes et réponses du service.

Pour produire un fichier journal concis et utile, procédez comme suit :

Attention

La mise à jour de Web.config entraîne le recyclage du domaine d’application MDS dans IIS.

  1. Si possible, arrêtez le pool d’applications MDS dans le gestionnaire IIS.

    Avertissement

    Effectuez cette opération uniquement si l’application peut être traitée hors ligne.

  2. Si possible, déplacez ou supprimez le fichier journal actuel (s’il en existe déjà un).

  3. Ouvrez le fichier Web.config dans un éditeur de texte.

    Remarque

    Par défaut, le fichier Web.config se trouve dans l’un des dossiers d’application web suivants :

    • SQL Server 2008 R2 : program_files\Microsoft SQL Server\Master Data Services\WebApplication
    • SQL Server 2012 : program_files\Microsoft SQL Server\110\Master Data Services\WebApplication
  4. Recherchez la section system.diagnostics.

  5. Remplacez switchValue par All ou ActivityTracing et supprimez les marques de commentaire de la ligne du fichier journal, comme indiqué dans la section Activer le suivi des fichiers journaux de cet article.

    1. Utiliser switchValue="All" pour les diagnostics d’erreur.
    2. Utiliser switchValue="ActivityTracing" pour les diagnostics de performances.
    3. Le nom de fichier MdsTrace.log peut être précédé d’un chemin d’accès si vous le souhaitez.
  6. Si le pool d’applications a été arrêté précédemment, démarrez le pool d’applications MDS dans IIS. Sinon, attendez que le fichier journal apparaisse après un certain temps et l’activité de l’application web. L’application web recharge régulièrement les paramètres de configuration à partir du fichier (en quelques minutes).

  7. Reproduisez le problème et effectuez les mêmes actions ou requêtes qui ont conduit à l’erreur.

  8. Si vous êtes en mesure d’arrêter le pool d’applications :

    1. Arrêtez l’application.
    2. Récupérez le fichier journal (vous devrez peut-être attendre la fin des processus ; il peut y avoir un délai après l’arrêt du pool d’applications).

    Sinon, ouvrez le fichier journal à l’aide d’un éditeur qui ne verrouille pas le fichier (comme notepad.exe) et copiez les messages de suivi appropriés.

  9. Ouvrez le fichier Web.config à l’aide d’un éditeur de texte et remplacez switchValue par Off ou par la valeur précédente.

  10. Démarrez le pool d’applications s’il est arrêté.

    Gestion des erreurs : toutes les opérations de service retournent un tableau ou une collection d’erreurs dans l’objet OperationResult d’un message de réponse. Lorsqu’une erreur se produit, le tableau d’erreurs est également sérialisé en XML et écrit dans le fichier journal de l’application web pour certains paramètres switchValue, comme décrit ci-dessus.

Exemple d’une erreur de réponse d’API qui a été écrite dans le fichier journal :

MDS Error: 0 :
<ArrayOfError xmlns="http://schemas.microsoft.com/sqlserver/masterdataservices/2009/09" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
     <Error> 
     <Code>110003</Code> 
          <Context> 
          <FullyQualifiedName>Model1</FullyQualifiedName> 
          <Identifier> 
               <Id>00000000-0000-0000-0000-000000000000</Id> 
               <Name>Model1</Name> <InternalId>0</InternalId> 
          </Identifier> 
          <Type>Model</Type> 
          </Context> 
     <Description>The name already exists. Type a different name.</Description> 
     </Error> 
</ArrayOfError> 
DateTime=2009-12-10T20:48:05.6949548Z error object contents 

Comme illustré dans l’exemple ci-dessus, chaque erreur inclut les propriétés de données suivantes :

Propriété Description
Code Numéro d’erreur unique identifiant le type d’erreur
Description Texte du message d’erreur localisé
Context.FullyQualifiedName Nom complet de l’objet impliqué dans l’erreur. Certains noms ne sont uniques que dans leur contexte. Une entité serait qualifiée avec un préfixe de nom de modèle tel que ModelName : EntityName
Context.Type Type d’objet impliqué dans l’erreur
Context.Identifier Identificateur de l’objet impliqué dans l’erreur
Context.Identifier.Id GUID unique de l’objet, s’il est spécifié ou disponible
Context.Identifier.Name Nom de l’objet, s’il est spécifié ou disponible
Context.Identifier.InternalId Déconseillé : ne pas utiliser

Suivi des problèmes de création de base de données MDS

Vous pouvez utiliser la procédure suivante pour créer un fichier journal qui peut vous aider à résoudre les échecs qui peuvent se produire lors de la création d’une base de données MDS :

  1. Ouvrez le fichier MDSConfigTool.exe.config dans le chemin C:\Program Files\Microsoft SQL Server\Master Data Services\Configuration à l’aide de notepad.exe.

  2. Supprimez les marques de commentaire de la ligne suivante dans le fichier en supprimant les caractères de suffixe sur cette ligne :

    <add name="LogFileListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="MdsConfigManagerTrace.log" traceOutputOptions="DateTime"/>

  3. Vérifiez que switchValue est défini sur All.

    <source name="MDS" switchType="System.Diagnostics.SourceSwitch" switchValue="All">

  4. Réessayez de créer la base de données. Ensuite, ouvrez le fichier MdsConfigManagerTrace.log enregistré dans C:\Program Files\Microsoft SQL Server\Master Data Services\Configuration et consultez-le pour obtenir d’autres informations sur l’échec.

Ressources externes

Dépannage de l’amélioration de la journalisation