Ablaufverfolgung (Master Data Services)

Gilt für:SQL Server – nur Windows Azure SQL Managed Instance

Nachdem Sie Master Data Services (MDS) installiert haben, finden Sie möglicherweise das Feature zur Ablaufverfolgungsprotokollierung hilfreich für die Fehlerdiagnose, Supportanfragen und die Überwachung der Anwendungsnutzung und -leistung. In diesem Artikel werden die Schritte zum Aktivieren und Konfigurieren der Ablaufverfolgungsprotokollierung beschrieben. Insbesondere wird in diesem Artikel die Ablaufverfolgung einer Textdatei behandelt. In diesem Artikel wird auch das Verfahren zum Erstellen einer Protokolldatei erläutert, die bei der Behandlung von Fehlern helfen kann, die beim Erstellen einer MDS-Datenbank auftreten können.

Hintergrund

Master Data Services besteht aus einer ASP.NET Webanwendung (Master Data Manager) und einem WCF-Dienst; beide werden in IIS und einer SQL Server-Datenbank gehostet. Master Data Manager-Anforderungen und externe Aufrufe an den Webdienst-API-Endpunkt werden von einer allgemeinen Dienstebene behandelt. Die Dienstebene kann jede Vorgangsanforderung/-antwort, wichtige Ereignisse und Fehler protokollieren.

Als Administrator mit Zugriff auf Dateien auf dem IIS-Webserver können Sie die Protokollierung aktivieren, indem Sie die DATEI MDS Web.config ändern.

Standardmäßig befindet sich die Datei "Web.config " in einem der folgenden Webanwendungsordner:

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

  • SQL Server 2012 und höhere Versionen: program_files\Microsoft SQL Server\<nnn>\Master Data Services\WebApplication

Die Zahlen nnn im Pfad entsprechen der Version von SQL Server, die installiert wird. In der folgenden Tabelle werden Versionen für die Pfade identifiziert:

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

Achtung

Durch das Aktualisieren von Web.config wird die MDS-Anwendungsdomäne in IIS wiederverwendet. Vorhandene Benutzersitzungen verlieren zwischengespeicherte Informationen, und Benutzer können Sitzungsfehler oder langsame Seitenladevorgänge feststellen. Führen Sie nach Möglichkeit Änderungen zu Spitzenzeiten durch.

Ablaufverfolgungsprotokollierung für MDS-Webanwendung

SQL Server 2016 und höher

Die Datei "Web.config " enthält einen Ablaufverfolgungsabschnitt, wie unten dargestellt. Dieser Abschnitt wird in SQL Server 2016 (13.x) Master Data Services eingeführt.

<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>

Im Folgenden sehen Sie das Standardmäßige Ablaufverfolgungsverhalten:

  • Die Ablaufverfolgung ist für Warning und ActivityTracing Nachrichten aktiviert.

    Weitere Informationen finden Sie unter SourceLevels-Enumeration.

  • Die Protokolle werden im Ordner "Protokolle " unter dem Ordner "WebApplication " gespeichert. Der Standardspeicherort ist "C:\Programme\Microsoft SQL Server\nnn\Master Data Services\WebApplication\Logs".

  • Die Datei wird für jeden Tag oder für jeweils 10 MB erstellt.

  • Wenn die Größe des Verzeichnisses 200 MB erreicht, wird das älteste Protokoll gelöscht.

  • Das Protokollformat ist CSV. In der folgenden Tabelle wird das Protokollformat beschrieben:

    Element Beschreibung
    Zeit Wenn der Ablaufverfolgungseintrag auftritt
    CorrelationID Eine Korrelations-ID wird für jede Anforderung zugewiesen. Alle von dieser Anforderung ausgelösten Ablaufverfolgungen teilen die gleiche Korrelations-ID.
    Wenn in der Benutzeroberfläche ein Fehler auftritt, wird die Korrelations-ID in der Fehlermeldung angezeigt.
    Vorgang Vorgangsname anfordern. Wenn die Anforderung eine Web-UI-Anforderung ist, ist der Vorgangsname die URL. Wenn es sich bei der Anforderung um eine API-Anforderung handelt, ist der Vorgangsname der Dienstname.
    Level Ebene dieses Ablaufverfolgungseintrags
    Meldung Nachrichtentext der Ablaufverfolgung

SQL Server 2014 und frühere Versionen

Diagnoseabschnitt aus der ursprünglich installierten Datei "Web.config"

Der folgende Dateiausschnitt zeigt den Diagnoseabschnitt aus der ursprünglich installierten Web.config-Datei .

Hinweis

switchValue wird auf Off festgelegt. Darüber hinaus werden die Beispielzeilen auskommentiert. Diese Zeilen sind Beispiele für das Hinzufügen von Ablaufverfolgungslistenern verschiedener Typen.

<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>

Aktivieren der Protokolldateiablaufverfolgung

Um die Protokollierung zu aktivieren, ändern Sie sich switchValue in All oder einen anderen gültigen Wert, wie in Tabelle 1 beschrieben. Um die Ausgabe in einer Protokolldatei zu aktivieren, heben Sie die Kommentare aus, LogFileListener wie im folgenden Dateiausschnitt gezeigt:

<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> 
Tabelle 1 : SwitchValue-Einstellungen für die Protokollierung
Einstellung Protokollierte Inhalte
Deaktiviert nothing
Fehler nur Fehler
Warnung Fehler und Warnungen
Informationen Fehler, Warnungen, Informationsmeldungen
Ausführlich "Informationen" und andere Debugablaufverfolgungsinformationen, einschließlich API-Anforderungen und -Antworten im XML-Format
ActivityTracing Nur Start- und Stoppereignisse
Alle "Ausführlich" und "ActivityTracing"
Dateiname und Pfad

Der initializeData Wert ist der Name der Protokolldatei. Dies kann auf einen anderen Namen geändert werden oder um einen gewünschten Pfad einzuschließen. Wenn der Pfad nicht angegeben ist, wird die Datei standardmäßig im Verzeichnispfad der Webanwendung verwendet (in dem sich Web.config befindet).

Wichtig

Das Dienstkonto für den MDS-Anwendungspool muss Schreibzugriff auf den Speicherort der Protokolldatei haben.

Protokollierungsstufe des Details

Tabelle 2 unten beschreibt die Kategorien von Ablaufverfolgungsereignissen, die mit den wichtigsten/kritischen Ereignissen oben protokolliert oder sortiert werden können. In Tabelle 1 oben sind die gültigen Einstellungen für die Protokollierung switchValueaufgeführt. Diese Einstellung kann angepasst werden, um die richtige Menge an Protokollierungsdetails entsprechend der Situation zu erzeugen.

Tabelle 2 : MDS-Protokollierungsereignistypen
Ereignistyp Beschreibung
Kritisch schwerwiegender Fehler oder Anwendungsabsturz
Fehler Ein wiederherstellbarer Fehler
Warnung ein nicht kritisches Problem
Informationen eine Informationsmeldung
Ausführlich Eine Debugablaufverfolgungsnachricht
Starten Starten eines logischen Vorgangs
Beenden Beenden eines logischen Vorgangs

Empfehlungen für Protokolleinstellungen

  • Verwenden Sie für den normalen Betrieb die Off Einstellung, um die Protokollierung vollständig zu vermeiden oder die Error Einstellungen Warning zu verwenden, die das Protokoll klein halten, während Administratoren auf Probleme aufmerksam gemacht werden.
  • Verwenden Sie die All Einstellung für Support-/Problembehandlungssituationen.
  • Wird zur Leistungsmessung oder Nutzungsüberwachung verwendet ActivityTracing .
  • Verwenden Sie diese Option Information nur, wenn sie für regelmäßige Überprüfungen und Bereinigen von Protokollen vorbereitet sind. Die Protokolle können mit dieser Einstellung langwierig werden. Diese Einstellung ist hilfreich für die Nachverfolgung von Verwendungs- und Verwendungsmustern.
  • Verwenden Verbose Sie nicht oder All unter normalen Betriebsbedingungen, da sich das protokollierte Datenvolumen negativ auf die Leistung auswirkt.

Schritte zum Erstellen einer Protokolldatei für produktsupport

In Situationen, in denen ein unerwarteter Fehler auftritt und weitere Diagnosen erforderlich sind, ist es hilfreich, eine Protokolldatei zu erstellen, die die Ereignisse verfolgt, die zu dem Problem führen, zusammen mit den Dienstanforderungen und -antworten.

Führen Sie die folgenden Schritte aus, um eine präzise und hilfreiche Protokolldatei zu erstellen:

Achtung

Durch das Aktualisieren von Web.config wird die MDS-Anwendungsdomäne in IIS wiederverwendet.

  1. Beenden Sie ggf. den MDS-Anwendungspool im IIS-Manager.

    Warnung

    Führen Sie dies nur aus, wenn die Anwendung von der Linie genommen werden kann.

  2. Verschieben oder löschen Sie ggf. die aktuelle Protokolldatei (sofern bereits vorhanden).

  3. Öffnen Sie die Datei "Web.config " mithilfe eines Text-Editors.

    Hinweis

    Standardmäßig befindet sich die Datei "Web.config " in einem der folgenden Webanwendungsordner:

    • 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. Suchen Sie nach dem Abschnitt system.diagnostics.

  5. Ändern Sie die switchValue Protokolldateizeile in All oder ActivityTracing heben Sie die Kommentare auf, wie im Abschnitt zum Aktivieren der Protokolldateiablaufverfolgung in diesem Artikel gezeigt.

    1. Wird für die Fehlerdiagnose verwendet switchValue="All" .
    2. Wird für die Leistungsdiagnose verwendet switchValue="ActivityTracing" .
    3. Der Dateiname "MdsTrace.log " kann bei Bedarf einem Pfad vorangestellt werden.
  6. Wenn der Anwendungspool zuvor beendet wurde, starten Sie den MDS-Anwendungspool in IIS. Oder warten Sie, bis die Protokolldatei nach einiger Zeit und Webanwendungsaktivitäten angezeigt wird. Die Webanwendung lädt konfigurationseinstellungen in regelmäßigen Abständen aus der Datei neu (sollte innerhalb von Minuten sein).

  7. Reproduzieren Sie das Problem, und führen Sie dieselben Aktionen oder Anforderungen aus, die zu dem Fehler geführt haben.

  8. Wenn Sie den Anwendungspool beenden können:

    1. Beenden Sie den Anwendungspool.
    2. Rufen Sie die Protokolldatei ab (Möglicherweise müssen Sie warten, bis Prozesse abgeschlossen sind. Nach dem Beenden des App-Pools kann es zu einer Verzögerung kommen).

    Oder öffnen Sie die Protokolldatei mit einem Editor, der die Datei nicht sperrt (z . B. Notepad.exe), und kopieren Sie die relevanten Ablaufverfolgungsmeldungen.

  9. Öffnen Sie die Datei "Web.config " mithilfe eines Text-Editors, und wechseln Sie switchValue zurück zu Off oder zum vorherigen Wert.

  10. Starten Sie den Anwendungspool, wenn er beendet wurde.

    Fehlerbehandlung: Alle Dienstvorgänge geben ein Array oder eine Auflistung von Fehlern innerhalb des OperationResult Objekts einer Antwortnachricht zurück. Wenn ein Fehler auftritt, wird das Fehlerarray auch in XML serialisiert und in die Webanwendungsprotokolldatei für bestimmte switchValue Einstellungen geschrieben, wie oben beschrieben.

Beispiel für einen API-Antwortfehler, der in die Protokolldatei geschrieben wurde:

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 

Wie im obigen Beispiel gezeigt, enthält jeder Fehler die folgenden Dateneigenschaften:

Eigenschaft Beschreibung
Code Die eindeutige Fehlernummer, die den Typ des Fehlers identifiziert
Beschreibung Lokalisierter Fehlermeldungstext
Context.FullyQualifiedName Der vollqualifizierte Name des Objekts, das an dem Fehler beteiligt ist. Einige Namen sind nur innerhalb ihres Kontexts eindeutig. Eine Entität wäre mit einem Modellnamenpräfix wie ModelName : EntityName qualifiziert.
Context.Type Der Typ des Objekts, das an dem Fehler beteiligt ist
Context.Identifier Der Bezeichner des Objekts, das an dem Fehler beteiligt ist
Context.Identifier.Id Die eindeutige GUID des Objekts, sofern angegeben oder verfügbar
Context.Identifier.Name Der Name des Objekts, sofern angegeben oder verfügbar
Context.Identifier.InternalId Veraltet – nicht verwenden

Ablaufverfolgung von MDS-Datenbankerstellungsproblemen

Sie können das folgende Verfahren verwenden, um eine Protokolldatei zu erstellen, mit der Fehler behoben werden können, die beim Erstellen einer MDS-Datenbank auftreten können:

  1. Öffnen Sie die Datei MDSConfigTool.exe.config im Pfad C:\Program Files\Microsoft SQL Server\Master Data Services\Configuration mithilfe von notepad.exe.

  2. Entfernen Sie die Kommentarkommentierung der folgenden Zeile in der Datei, indem Sie die Suffixzeichen in dieser Zeile entfernen:

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

  3. Stellen Sie sicher, dass switchValue auf All festgelegt ist.

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

  4. Versuchen Sie es erneut, um die Datenbank zu erstellen. Öffnen Sie dann die Datei MdsConfigManagerTrace.log , die in C:\Program Files\Microsoft SQL Server\Master Data Services\Configuration gespeichert ist, und überprüfen Sie dies auf andere Informationen zum Fehler.

Externe Ressourcen

Problembehandlung bei der Protokollierungsverbesserung