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 des traces utile pour les diagnostics d’erreurs, les demandes de support et la surveillance de l’utilisation et des performances des applications. Cet article décrit les étapes à suivre pour activer et configurer la journalisation des traces. 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.

Arrière-plan

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 MDS Web.config .

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 versions ultérieures : program_files\Microsoft SQL Server\<nnn>\Master Data Services\WebApplication

Les nombres nnn dans le chemin correspondent à la version de SQL Server en cours d’installation. Le tableau suivant identifie les versions des chemins d’accès :

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 et ActivityTracing les Warning messages.

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

  • Les journaux sont enregistrés dans le dossier Journaux sous le dossier WebApplication . L’emplacement par défaut est 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 du répertoire atteint 200 Mo, le journal le plus ancien est supprimé.

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

    Element Description
    Time Lorsque l’entrée de trace se produit
    CorrelationID Un ID de corrélation est affecté à chaque demande. Toutes les traces déclenchées par cette requête partageront 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 d’API, le nom de l’opération est le nom du service
    Level Niveau de cette entrée de trace
    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.

Note

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 switchValue à All 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 LogFileListener ligne, comme indiqué dans l’extrait de code 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
Paramètre Quels sont les éléments consignés ?
Désactivée rien
Erreur erreurs uniquement
Avertissement erreurs et avertissements
Information erreurs, avertissements, messages d’information
Verbose « Informations » et autres informations de suivi de débogage, y compris les requêtes et réponses d’API au format XML
ActivityTracing démarrer et arrêter les événements uniquement
Toutes « Verbose » et « ActivityTracing »
Nom et chemin de fichier

La initializeData valeur 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 de l’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 trace 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 une erreur irrécupérable ou un incident d’application
Erreur une erreur récupérable
Avertissement un problème non critique
Information un message d’information
Verbose un message de trace de débogage
Début démarrage d’une opération logique
Arrêter arrêt d’une opération logique

Recommandations relatives aux paramètres de journal

  • Pour une opération normale, utilisez le Off paramètre pour éviter la journalisation complètement ou utilisez les Error paramètres Warning qui conservent le journal petit tout en alertant les administrateurs des problèmes.
  • Utilisez le paramètre pour les situations de All 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 le suivi des modèles d’utilisation et d’utilisation.
  • Ne pas utiliser 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 trace 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 désactivée.

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

  3. Ouvrez le fichier Web.config à l’aide d’un éditeur de texte.

    Note

    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. Modifiez la switchValueAll ligne de fichier journal ou ActivityTracing supprimez les marques de commentaire, comme indiqué dans la section Activation du 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 du 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 (doit être en quelques minutes).

  7. Reproduire le problème et effectuer 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 le pool d’applications.
    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 revenez switchValue à ou à Off 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 switchValue paramètres, comme décrit ci-dessus.

Exemple d’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é : n’utilisez pas

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 D:\Program Files\Microsoft SQL Server\Master Data Services\Configuration à l’aide du bloc-notes.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 passez en revue les mêmes informations concernant l’échec.

Ressources externes

Résolution des problèmes d’amélioration de la journalisation