Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server in Windows
Azure SQL Managed Instance
Belangrijk
Master Data Services (MDS) wordt verwijderd in SQL Server 2025 (17.x). MdS wordt nog steeds ondersteund in SQL Server 2022 (16.x) en eerdere versies.
Zodra u Master Data Services (MDS) hebt geïnstalleerd, is de functie traceringslogboekregistratie mogelijk nuttig voor foutdiagnose, ondersteuningsaanvragen en bewaking van toepassingsgebruik en -prestaties. In dit artikel worden de stappen beschreven voor het inschakelen en configureren van traceringslogboekregistratie. In dit artikel wordt het traceren naar een tekstbestand beschreven. In dit artikel wordt ook de procedure besproken voor het maken van een logboekbestand waarmee u fouten kunt oplossen die kunnen optreden bij het maken van een MDS-database.
Achtergrond
Master Data Services bestaat uit een ASP.NET-webtoepassing (Master Data Manager) en een WCF-service; beide worden gehost in IIS en een SQL Server-database. Master Data Manager-aanvragen en externe aanroepen naar het eindpunt van de webservices-API worden verwerkt door een algemene servicelaag. De servicelaag kan elke bewerkingsaanvraag/-reactie, belangrijke gebeurtenissen en fouten registreren.
Als beheerder met toegang tot bestanden op de IIS-webserver kunt u logboekregistratie inschakelen door het MDS -Web.config-bestand te wijzigen.
Standaard bevindt het Web.config bestand zich in een van de volgende webtoepassingsmappen:
SQL Server 2008 R2: program_files\Microsoft SQL Server\Master Data Services\WebApplication
SQL Server 2012 en latere versies: program_files\Microsoft SQL Server\<nnn>\Master Data Services\WebApplication
De nummers nnn in het pad komen overeen met de versie van SQL Server die wordt geïnstalleerd. In de volgende tabel worden versies voor de paden geïdentificeerd:
| Versie | nnn |
|---|---|
| SQL Server 2019 | 150 |
| SQL Server 2017 | 140 |
| SQL Server 2016 | 130 |
| SQL Server 2014 | 120 |
| SQL Server 2012 | 110 |
Waarschuwing
Bijwerken van Web.config zorgt ervoor dat het MDS-toepassingsdomein in IIS wordt gerecycled. Bestaande gebruikerssessies verliezen gegevens in de cache en gebruikers kunnen sessiefouten of trage paginabelastingen ervaren. Voer indien mogelijk wijzigingen uit op daluren.
Logboekregistratie voor MDS-webtoepassing traceren
SQL Server 2016 en latere versies
Het bestandWeb.config bevat een traceringssectie, zoals hieronder wordt weergegeven. Deze sectie wordt geïntroduceerd in 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>
Hier volgt het standaardtraceringsgedrag:
Tracering is ingeschakeld voor
WarningenActivityTracingberichten.Zie De opsomming SourceLevels voor meer informatie.
De logboeken worden opgeslagen in de map Logboeken onder de map WebApplication . De standaardlocatie is C:\Program Files\Microsoft SQL Server\nnn\Master Data Services\WebApplication\Logs.
Het bestand wordt elke dag of elke 10 MB gemaakt.
Wanneer de grootte van de map 200 MB bereikt, wordt het oudste logboek verwijderd.
De logboekindeling is CSV. In de volgende tabel wordt de logboekindeling beschreven:
Onderdeel Beschrijving Tijd Wanneer de traceringsvermelding plaatsvindt Correlatie-id Er wordt één correlatie-id toegewezen voor elke aanvraag. Alle traceringen die door deze aanvraag worden geactiveerd, delen dezelfde correlatie-id.
Wanneer er een fout optreedt in de gebruikersinterface, wordt de correlatie-id weergegeven in het foutberichtOperatie Naam van aanvraagbewerking. Als de aanvraag een webgebruikersinterfaceaanvraag is, is de naam van de bewerking de URL. Als de aanvraag een API-aanvraag is, is de naam van de bewerking de servicenaam Niveau Niveau van deze traceringsvermelding Bericht Berichttekst van de tracering
SQL Server 2014 en eerdere versies
Diagnostica sectie uit het oorspronkelijk geïnstalleerde Web.config-bestand
In het volgende bestandsfragment ziet u de sectie Diagnostische gegevens uit het oorspronkelijk geïnstalleerde Web.config-bestand .
Opmerking
De switchValue is ingesteld op Off. Daarnaast worden de voorbeeldregels uitgecommentareerd. Deze regels zijn voorbeelden voor het toevoegen van traceerlisteners van verschillende 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>
Tracering van logboekbestanden inschakelen
Als u het logboek wilt inschakelen, verander switchValue in All of een andere geldige waarde, zoals hieronder wordt beschreven in Tabel 1. Als u de uitvoer naar een logboekbestand wilt inschakelen, moet u de opmerking bij de LogFileListener regel ongedaan maken, zoals wordt weergegeven in het volgende bestandsfragment:
<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>
Tabel 1 : SwitchValue-instellingen voor logboekregistratie
| Configuratie | Wat wordt geregistreerd |
|---|---|
| Uit | niets |
| Fout | alleen fouten |
| Waarschuwing | fouten en waarschuwingen |
| Gegevens | fouten, waarschuwingen, informatieve berichten |
| Uitgebreid | Informatie en andere foutopsporingsinformatie, waaronder API-aanvragen en -antwoorden in XML-indeling |
| Activiteitentracering | alleen gebeurtenissen starten en stoppen |
| Alle | "Uitgebreid" en "Activiteitstracering" |
Bestandsnaam en pad
De initializeData waarde is de naam van het logboekbestand. Dit kan worden gewijzigd in een andere naam of om een gewenst pad toe te voegen. Als het pad niet is opgegeven, wordt het bestand standaard ingesteld op het pad naar de webtoepassingsmap (waar Web.config zich bevindt).
Belangrijk
Het serviceaccount voor de MDS-toepassingsgroep moet schrijftoegang hebben tot de locatie van het logboekbestand.
Detailniveau voor logboekregistratie
In tabel 2 hieronder worden de categorieën traceringsgebeurtenissen beschreven die kunnen worden geregistreerd of gesorteerd met de belangrijkste/kritieke gebeurtenissen bovenaan.
Tabel 1 hierboven bevat de geldige instellingen voor de logboekregistratie switchValue. Deze instelling kan worden aangepast om de juiste hoeveelheid logboekgegevens te produceren om aan de situatie te voldoen.
Tabel 2- MDS-gebeurtenistypen voor logboekregistratie
| Gebeurtenistype | Beschrijving |
|---|---|
| Kritisch | een fatale fout of toepassingscrash |
| Fout | een herstelbare fout |
| Waarschuwing | een niet-kritiek probleem |
| Gegevens | een informatiebericht |
| Uitgebreid | een traceringsbericht voor foutopsporing |
| Beginnen | starten van een logische bewerking |
| Stoppen | stoppen van een logische bewerking |
Aanbevelingen voor logboekinstellingen
- Gebruik voor normale werking de
Offinstelling om logboekregistratie helemaal te voorkomen of gebruik deErrorofWarninginstellingen die het logboek klein houden terwijl beheerders worden gewaarschuwd voor problemen. - Gebruik de
Allinstelling voor ondersteunings- en probleemoplossingssituaties. - Gebruik
ActivityTracingdeze functie voor prestatiemeting of gebruikscontrole. - Gebruik
Informationalleen als u voorbereid bent om periodiek logboeken te controleren en op te schonen. De logboeken kunnen lang worden met deze instelling. Deze instelling is handig voor het bijhouden van gebruiks- en gebruikspatronen. - Gebruik
VerboseofAllniet onder normale bedrijfsomstandigheden, omdat het gegevensvolume dat wordt geregistreerd een negatieve invloed heeft op de prestaties.
Stappen voor het maken van een logboekbestand voor productondersteuning
In situaties waarin een onverwachte fout optreedt en verdere diagnostische gegevens vereist zijn, is het handig om een logboekbestand te maken dat de gebeurtenissen traceert die tot het probleem leiden, samen met de serviceaanvragen en -antwoorden.
Voer de volgende stappen uit om een beknopt en nuttig logboekbestand te maken:
Waarschuwing
Bijwerken van Web.config zorgt ervoor dat het MDS-toepassingsdomein in IIS wordt gerecycled.
Stop indien mogelijk de MDS-toepassingsgroep in IIS-beheer.
Waarschuwing
Doe dit alleen als de toepassing offline kan worden gehaald.
Verplaats of verwijder indien mogelijk het huidige logboekbestand (indien aanwezig).
Open het Web.config-bestand met behulp van een teksteditor.
Opmerking
Standaard bevindt het Web.config bestand zich in een van de volgende webtoepassingsmappen:
- 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
Zoek de
system.diagnosticssectie.Wijzig de
switchValuenaarAllofActivityTracingen verwijder het opmerkingen teken van de regel voor logboekbestanden zoals weergegeven in de sectie Logboekbestandtracering inschakelen van dit artikel.- Gebruiken
switchValue="All"voor foutdiagnose. - Gebruiken
switchValue="ActivityTracing"voor prestatiediagnose. - De MdsTrace.log bestandsnaam kan desgewenst worden voorafgegaan door een pad.
- Gebruiken
Als de groep van toepassingen eerder is gestopt, start u de MDS-groep van toepassingen in IIS. Of wacht anders tot het logbestand zichtbaar wordt na enige tijd en na activiteit van de webapplicatie. De webtoepassing laadt regelmatig de configuratie-instellingen van het bestand opnieuw (moet binnen enkele minuten zijn).
Reproduceer het probleem en voer dezelfde acties of aanvragen uit die tot de fout hebben geleid.
Als u de groep van toepassingen kunt stoppen:
- Stop de groep van toepassingen.
- Haal het logboekbestand op (mogelijk moet u wachten tot processen zijn voltooid; er kan een vertraging optreden na het stoppen van de app-pool).
Of open het logboekbestand met behulp van een editor die het bestand (zoals notepad.exe) niet vergrendelt en kopieer de relevante traceringsberichten.
Open het Web.config-bestand met behulp van een teksteditor en ga
switchValueterug naarOffof de vorige waarde.Start de groep van toepassingen als deze is gestopt.
Foutafhandeling: alle servicebewerkingen retourneren een matrix of verzameling fouten binnen het
OperationResultobject van een antwoordbericht. Wanneer er een fout optreedt, wordt de foutmatrix ook geserialiseerd naar XML en naar het logboekbestand van de webtoepassing geschreven voor bepaaldeswitchValueinstellingen, zoals hierboven beschreven.
Een voorbeeld van een API-antwoordfout die naar het logboekbestand is geschreven:
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
Zoals in het bovenstaande voorbeeld wordt weergegeven, bevat elke fout de volgende gegevenseigenschappen:
| Vastgoed | Beschrijving |
|---|---|
| Code | Het unieke foutnummer waarmee het type fout wordt geïdentificeerd |
| Beschrijving | Gelokaliseerde tekst van foutbericht |
| Context.FullyQualifiedName | De volledig gekwalificeerde naam van het object dat bij de fout betrokken is. Sommige namen zijn alleen uniek binnen hun context. Een entiteit wordt gekwalificeerd met een modelnaamvoorvoegsel zoals ModelName: EntityName |
| Context.Type | Het type object dat betrokken is bij de fout |
| Context.Identifier | De id van het object dat bij de fout betrokken is |
| Context.Identifier.Id | De unieke GUID van het object, indien opgegeven of beschikbaar |
| Context.Identifier.Name | De naam van het object, indien opgegeven of beschikbaar |
| Context.Identifier.InternalId | Afgeschaft – niet gebruiken |
Problemen met het maken van MDS-databases traceren
U kunt de volgende procedure gebruiken om een logboekbestand te maken dat kan helpen bij het oplossen van fouten die kunnen optreden bij het maken van een MDS-database:
Open het bestandMDSConfigTool.exe.config in het pad C:\Program Files\Microsoft SQL Server\Master Data Services\Configuration met behulp van notepad.exe.
Verwijder de opmerkingen bij de volgende regel in het bestand door de achtervoegseltekens op die regel te verwijderen:
<add name="LogFileListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="MdsConfigManagerTrace.log" traceOutputOptions="DateTime"/>Zorg ervoor dat
switchValueis ingesteld opAll.<source name="MDS" switchType="System.Diagnostics.SourceSwitch" switchValue="All">Probeer de database opnieuw te maken. Open vervolgens het bestand MdsConfigManagerTrace.log dat is opgeslagen in C:\Program Files\Microsoft SQL Server\Master Data Services\Configuration en controleer hetzelfde voor andere informatie over de fout.