Delen via


Tracering (Master Data Services)

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 Warning en ActivityTracing berichten.

    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 foutbericht
    Operatie 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 Off instelling om logboekregistratie helemaal te voorkomen of gebruik de Error of Warning instellingen die het logboek klein houden terwijl beheerders worden gewaarschuwd voor problemen.
  • Gebruik de All instelling voor ondersteunings- en probleemoplossingssituaties.
  • Gebruik ActivityTracing deze functie voor prestatiemeting of gebruikscontrole.
  • Gebruik Information alleen 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 Verbose of All niet 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.

  1. Stop indien mogelijk de MDS-toepassingsgroep in IIS-beheer.

    Waarschuwing

    Doe dit alleen als de toepassing offline kan worden gehaald.

  2. Verplaats of verwijder indien mogelijk het huidige logboekbestand (indien aanwezig).

  3. 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
  4. Zoek de system.diagnostics sectie.

  5. Wijzig de switchValue naar All of ActivityTracing en verwijder het opmerkingen teken van de regel voor logboekbestanden zoals weergegeven in de sectie Logboekbestandtracering inschakelen van dit artikel.

    1. Gebruiken switchValue="All" voor foutdiagnose.
    2. Gebruiken switchValue="ActivityTracing" voor prestatiediagnose.
    3. De MdsTrace.log bestandsnaam kan desgewenst worden voorafgegaan door een pad.
  6. 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).

  7. Reproduceer het probleem en voer dezelfde acties of aanvragen uit die tot de fout hebben geleid.

  8. Als u de groep van toepassingen kunt stoppen:

    1. Stop de groep van toepassingen.
    2. 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.

  9. Open het Web.config-bestand met behulp van een teksteditor en ga switchValue terug naar Off of de vorige waarde.

  10. Start de groep van toepassingen als deze is gestopt.

    Foutafhandeling: alle servicebewerkingen retourneren een matrix of verzameling fouten binnen het OperationResult object van een antwoordbericht. Wanneer er een fout optreedt, wordt de foutmatrix ook geserialiseerd naar XML en naar het logboekbestand van de webtoepassing geschreven voor bepaalde switchValue instellingen, 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:

  1. Open het bestandMDSConfigTool.exe.config in het pad C:\Program Files\Microsoft SQL Server\Master Data Services\Configuration met behulp van notepad.exe.

  2. 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"/>

  3. Zorg ervoor dat switchValue is ingesteld op All.

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

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

Externe middelen

Problemen met logboekverbetering oplossen