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
undActivityTracing
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 switchValue
aufgefü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 dieError
EinstellungenWarning
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 oderAll
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.
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.
Verschieben oder löschen Sie ggf. die aktuelle Protokolldatei (sofern bereits vorhanden).
Ö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
Suchen Sie nach dem Abschnitt
system.diagnostics
.Ändern Sie die
switchValue
Protokolldateizeile inAll
oderActivityTracing
heben Sie die Kommentare auf, wie im Abschnitt zum Aktivieren der Protokolldateiablaufverfolgung in diesem Artikel gezeigt.- Wird für die Fehlerdiagnose verwendet
switchValue="All"
. - Wird für die Leistungsdiagnose verwendet
switchValue="ActivityTracing"
. - Der Dateiname "MdsTrace.log " kann bei Bedarf einem Pfad vorangestellt werden.
- Wird für die Fehlerdiagnose verwendet
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).
Reproduzieren Sie das Problem, und führen Sie dieselben Aktionen oder Anforderungen aus, die zu dem Fehler geführt haben.
Wenn Sie den Anwendungspool beenden können:
- Beenden Sie den Anwendungspool.
- 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.
Öffnen Sie die Datei "Web.config " mithilfe eines Text-Editors, und wechseln Sie
switchValue
zurück zuOff
oder zum vorherigen Wert.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 bestimmteswitchValue
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:
Öffnen Sie die Datei MDSConfigTool.exe.config im Pfad C:\Program Files\Microsoft SQL Server\Master Data Services\Configuration mithilfe von notepad.exe.
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"/>
Stellen Sie sicher, dass
switchValue
aufAll
festgelegt ist.<source name="MDS" switchType="System.Diagnostics.SourceSwitch" switchValue="All">
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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für