Freigeben über


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 Textprotokolldatei behandelt. In diesem Artikel wird auch das Verfahren zum Erstellen einer Protokolldatei beschrieben, die bei der Fehlerbehebung 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 MDS-Datei 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 spätere 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 die Versionen für die Pfade angezeigt:

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 Änderungen nach Möglichkeit zu Schwachlastzeiten durch.

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

Folgendes Verhalten ist das Standardverhalten für die Ablaufverfolgung:

  • 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:\Program Files\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
    Time Zeitpunkt des Ablaufverfolgungseintrags
    CorrelationID Eine Korrelations-ID wird für jede Anforderung zugewiesen. Alle Ablaufverfolgungen, die durch diese Anforderung ausgelöst werden, haben die gleiche Korrelations-ID.
    Tritt ein Fehler in der Benutzeroberfläche auf, 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 die Anforderung eine API-Anforderung ist, ist der Vorgangsname der Dienstname
    Ebene Ebene dieses Ablaufverfolgungseintrags
    `Message` Nachrichtentext der Ablaufverfolgung

SQL Server 2014 und ältere Versionen

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

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

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 switchValue in All oder einen anderen gültigen Wert, wie unten in Tabelle 1 beschrieben. Um die Ausgabe in eine Protokolldatei zu aktivieren, heben Sie die Auskommentierung in der Zeile LogFileListener auf, wie im folgenden Dateifragment 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
Aus Nothing
Fehler nur Fehler
Warnung Fehler und Warnungen
Informationen Fehler, Warnungen und 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 entspricht dem Namen 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 Web-Anwendungsverzeichnis 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 ein schwer wiegender Fehler oder Anwendungsabsturz
Fehler ein behebbarer Fehler
Warnung ein nicht kritisches Problem
Informationen eine Informationsnachricht
Ausführlich eine Debugablaufverfolgungsnachricht
Start Starten eines logischen Vorgangs
Beenden Beenden eines logischen Vorgangs

Empfehlungen für Protokollierungseinstellungen

  • Verwenden Sie für den normalen Betrieb die Off-Einstellung, um die Protokollierung vollständig zu vermeiden oder verwenden Sie die Einstellungen Error oder Warning, die das Protokoll klein halten, aber die Administratoren auf Probleme aufmerksam machen.
  • Verwenden Sie die All-Einstellung für Support-/Problembehandlungssituationen.
  • Verwenden Sie ActivityTracing zur Leistungsmessung oder Nutzungsüberwachung.
  • Verwenden Sie Information nur, wenn Sie bereit sind, die Protokolle regelmäßig zu überprüfen und zu reinigen. Die Protokolle können mit dieser Einstellung langwierig werden. Diese Einstellung ist hilfreich, um die Nutzung und das Nutzungsverhalten zu verfolgen.
  • Verwenden Sie Verbose oder All nicht unter normalen Betriebsbedingungen, da die Menge der aufgezeichneten Daten die Leistung beeinträchtigt.

Schritte zum Erstellen einer Protokolldatei für den 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

    Tun Sie dies nur, wenn die Anwendung offline geschaltet werden kann.

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

  3. Öffnen Sie die Datei „Web.config“ mit einem Text-Editor.

    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 das switchValue in All oder ActivityTracing und heben Sie die Kommentierung der Protokolldateizeile auf, wie im Abschnitt Einschalten der Protokolldateiverfolgung dieses Artikels gezeigt.

    1. Verwenden Sie switchValue="All" für die Fehlerdiagnose.
    2. Verwenden Sie switchValue="ActivityTracing" für die Leistungsdiagnose.
    3. Der MdsTrace.log-Dateiname 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 Sammlung 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

Mit dem folgenden Verfahren können Sie eine Protokolldatei erstellen, die bei der Fehlersuche im Zusammenhang mit der Erstellung einer MDS-Datenbank helfen kann:

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

  2. Heben Sie die Auskommentierung der folgenden Zeile in der Datei auf, 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

Verbesserung der Problembehandlung bei der Protokollierung