Traccia (Master Data Services)
Si applica a: SQL Server - Solo Windows Istanza gestita di SQL di Azure
Dopo aver installato Master Data Services (MDS), è possibile trovare la funzionalità di registrazione di traccia utile per la diagnostica degli errori, le richieste di supporto e il monitoraggio dell'utilizzo e delle prestazioni dell'applicazione. Questo articolo illustra i passaggi per attivare e configurare la registrazione di traccia. In particolare, questo articolo illustra la traccia in un file di log di testo. Questo articolo illustra anche la procedura per creare un file di log che consente di risolvere gli errori che possono verificarsi durante la creazione di un database MDS.
Background
Master Data Services è costituito da un'applicazione web ASP.NET (Gestione dati master) e da un servizio WCF; entrambi sono ospitati in IIS e in un database di SQL Server. Le richieste di Gestione dati master e le chiamate esterne all'endpoint dell'API dei servizi web vengono gestite da un livello di servizio comune. Il livello del servizio può registrare ogni richiesta/risposta dell'operazione, eventi importanti ed errori.
In qualità di amministratore con accesso ai file nel server web IIS, è possibile abilitare la registrazione modificando il file WEB.config MDS.
Per impostazione predefinita, il file Web.config si trova in una delle seguenti cartelle dell'applicazione web:
SQL Server 2008 R2: program_files\Microsoft SQL Server\Master Data Services\WebApplication
SQL Server 2012 e versioni successive: program_files\Microsoft SQL Server\<nnn>\Master Data Services\WebApplication
I numeri nnn nel percorso corrispondono alla versione di SQL Server di cui è in corso l'installazione. La tabella seguente indica le versioni per i percorsi:
Versione | nnn |
---|---|
SQL Server 2019 | 150 |
SQL Server 2017 | 140 |
SQL Server 2016 | 130 |
SQL Server 2014 | 120 |
SQL Server 2012 | 110 |
Attenzione
L'aggiornamento di Web.config causerà il riciclo del dominio dell'applicazione MDS in IIS. Le sessioni utente esistenti perderanno informazioni memorizzate nella cache e gli utenti potrebbero riscontrare errori di sessione o caricamenti lenti delle pagine. Se possibile, eseguire le modifiche in orari non di punta.
Registrazione traccia per l'applicazione web MDS
SQL Server 2016 e versioni successive
Il file Web.config contiene una sezione di traccia, come illustrato di seguito. Questa sezione è stata introdotta 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>
Di seguito viene illustrato il comportamento di traccia predefinito:
La traccia è abilitata per i messaggi
Warning
eActivityTracing
.Per maggiori informazioni, vedere Enumerazione SourceLevels.
I log vengono salvati nella cartella Log nella cartella WebApplication. Il percorso predefinito è C:\Programmi\Microsoft SQL Server\nnn\Master Data Services\WebApplication\Logs.
Il file viene creato per ogni giorno o per ogni 10 MB.
Quando le dimensioni della directory raggiungono i 200 MB, il log meno recente viene eliminato.
Il formato del log è CSV. La tabella seguente descrive il formato del log:
Elemento Descrizione Data e ora La data e l'ora della voce di traccia CorrelationID Per ogni richiesta viene assegnato un ID di correlazione. Tutte le tracce attivate dalla richiesta condividono lo stesso ID di correlazione.
Quando si verifica un errore nell'interfaccia utente, l'ID di correlazione viene visualizzato nel messaggio di erroreOperazione Nome dell'operazione di richiesta. Se la richiesta è una richiesta dell'interfaccia utente Web, il nome dell'operazione è l'URL. Se la richiesta è una richiesta API, il nome dell'operazione è il nome del servizio Livello Livello di questa voce di traccia Message Corpo del messaggio della traccia
SQL Server 2014 e versioni precedenti
Sezione diagnostica del file Web.config installato originariamente
Il seguente frammento di file mostra la sezione diagnostica del file Web.config installato originariamente.
Nota
switchValue
viene impostato su Off
. Inoltre, le righe di esempio vengono impostate come commento. Queste righe sono esempi per l'aggiunta di listener di traccia di vari tipi.
<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>
Abilitazione della traccia dei file di log
Per abilitare la registrazione, passare da switchValue
a All
o a un altro valore valido, come descritto di seguito nella Tabella 1. Per abilitare l'output in un file di log, rimuovere il commento dalla riga LogFileListener
come illustrato nel frammento di file seguente:
<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>
Tabella 1 - Impostazioni SwitchValue per la registrazione
Impostazione | Informazioni registrate |
---|---|
Disattivato | nothing |
Error | solo errori |
Avviso | errori e avvisi |
Informazioni | errori, avvisi, messaggi informativi |
Verbose | "Informazioni" e altre informazioni di traccia di debug, incluse le richieste API e le risposte in formato XML |
ActivityTracing | solo eventi di avvio e arresto |
Tutte le date | "Verbose" e "ActivityTracing" |
Percorso e nome file
Il valore initializeData
è il nome del file di log. Può essere modificato in un altro nome o per includere un percorso desiderato. Se il percorso non viene specificato, il file verrà impostato come predefinito sul percorso della directory dell'applicazione web (dove risiede Web.config).
Importante
L'account del servizio per il pool di applicazioni MDS deve avere accesso in scrittura alla posizione del file di log.
Livello di registrazione di dettaglio
La Tabella 2 seguente descrive le categorie di eventi di traccia che possono essere registrati o ordinati con gli eventi più importanti/critici nella parte superiore. La Tabella 1 sopra riporta le impostazioni valide per la registrazione switchValue
. Questa impostazione può essere modificata per produrre la giusta quantità di dettagli di registrazione in base alla situazione.
Tabella 2 - Tipi di eventi di registrazione MDS
Tipo di evento | Descrizione |
---|---|
Critico | un errore irreversibile o arresto anomalo dell'applicazione |
Error | un errore reversibile |
Avviso | un problema non critico |
Informazioni | un messaggio informativo |
Verbose | un messaggio di traccia di debug |
Inizio | avvio di un'operazione logica |
Arresta | arresto di un'operazione logica |
Raccomandazioni per l'impostazione del log
- Per il normale funzionamento, usare l'impostazione
Off
per evitare del tutto la registrazione o usare le impostazioniError
oWarning
che manterranno il log ridotto avvisando gli amministratori dei problemi. - Usare l'impostazione
All
per situazioni di supporto/risoluzione dei problemi. - Usare
ActivityTracing
per la misurazione delle prestazioni o il monitoraggio dell'utilizzo. - Usare
Information
solo se preparato per controllare e pulire periodicamente i log. I log potrebbero essere lunghi con questa impostazione. Questa impostazione è utile per tenere traccia dell'utilizzo e i criteri di utilizzo. - Non usare
Verbose
oAll
in condizioni operative normali, poiché il volume dei dati registrati influirà negativamente sulle prestazioni.
Procedura per la creazione di un file di log per il supporto del prodotto
In situazioni in cui si verifica un errore imprevisto e sono necessarie ulteriori operazioni di diagnostica, è utile creare un file di log che tracci gli eventi che portano al problema insieme alle richieste e alle risposte del servizio.
Per produrre un file di log conciso e utile, seguire questi passaggi:
Attenzione
L'aggiornamento di Web.config causerà il riciclo del dominio dell'applicazione MDS in IIS.
Se possibile, arrestare il pool di applicazioni MDS in Gestione IIS.
Avviso
Eseguire questa operazione solo se l'applicazione può essere disattivata.
Se possibile, spostare o eliminare il file di log corrente (se ne esiste già uno).
Aprire il file Web.config utilizzando un editor di testo.
Nota
Per impostazione predefinita, il file Web.config si trova in una delle seguenti cartelle dell'applicazione web:
- 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
Trovare la sezione
system.diagnostics
.Modificare
switchValue
inAll
oActivityTracing
e rimuovere il commento dalla riga del file di log, come illustrato nella sezione Attivazione della traccia dei file di log di questo articolo.- Usare
switchValue="All"
per la diagnostica degli errori. - Usare
switchValue="ActivityTracing"
per la diagnostica delle prestazioni. - Il nome del file MdsTrace.log può essere preceduto da un percorso, se necessario.
- Usare
Se il pool di applicazioni è stato arrestato in precedenza, avviare il pool di applicazioni MDS in IIS. In alternativa, attendere che il file di log venga visualizzato dopo un certo periodo di tempo e dopo l'attività dell'applicazione web. L'applicazione web ricarica periodicamente le impostazioni di configurazione dal file (nel giro di pochi minuti).
Riprodurre il problema ed eseguire le stesse azioni o richieste che hanno causato l'errore.
Se è possibile arrestare il pool di applicazioni:
- Arrestare il pool di applicazioni.
- Recuperare il file di log (potrebbe essere necessario attendere il completamento dei processi; potrebbe verificarsi un ritardo dopo l'arresto del pool di app).
In alternativa, aprire il file di log usando un editor che non blocca il file (ad esempio notepad.exe) e copiare i messaggi di traccia pertinenti.
Aprire il file Web.config usando un editor di testo e riportare
switchValue
aOff
o al valore precedente.Avviare il pool di applicazioni se interrotto.
Gestione degli errori: tutte le operazioni del servizio restituiscono una matrice o una raccolta di errori all'interno dell'oggetto
OperationResult
di un messaggio di risposta. Quando si verifica un errore, la matrice di errori viene serializzata anche in XML e scritta nel file di log applicazioni web per determinate impostazioniswitchValue
, come descritto in precedenza.
Esempio di errore di risposta API scritto nel file di log:
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
Come illustrato nell'esempio precedente, ogni errore include le proprietà dei seguenti dati:
Proprietà | Descrizione |
---|---|
Codice | Numero di errore univoco che identifica il tipo di errore |
Descrizione | Testo del messaggio di errore localizzato |
Context.FullyQualifiedName | Nome completo dell'oggetto coinvolto nell'errore. Alcuni nomi sono univoci solo all'interno del relativo contesto. Un'entità verrà qualificata con un prefisso del nome del modello, ad esempio ModelName: EntityName |
Context.Type | Il tipo di oggetto coinvolto nell'errore |
Context.Identifier | L'identificatore dell'oggetto coinvolto nell'errore |
Context.Identifier.Id | Il GUID univoco dell'oggetto, se specificato o disponibile |
Context.Identifier.Name | Il nome dell'oggetto, se specificato o disponibile |
Context.Identifier.InternalId | Deprecato: non usare |
Tracciare i problemi di creazione del database MDS
È possibile usare la seguente procedura per creare un file di log che consente di risolvere gli errori che possono verificarsi durante la creazione di un database MDS:
Aprire il file MDSConfigTool.exe.config nel percorso C:\Programmi\Microsoft SQL Server\Master Data Services\Configuration usando notepad.exe.
Rimuovere il commento dalla riga seguente nel file rimuovendo i caratteri del suffisso in tale riga:
<add name="LogFileListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="MdsConfigManagerTrace.log" traceOutputOptions="DateTime"/>
Assicurarsi che
switchValue
sia impostato suAll
.<source name="MDS" switchType="System.Diagnostics.SourceSwitch" switchValue="All">
Riprovare a creare il database. Aprire quindi il file MdsConfigManagerTrace.log salvato in C:\Programmi\Microsoft SQL Server\Master Data Services\Configuration ed esaminare lo stesso file per altre informazioni relative all'errore.
Risorse esterne
Miglioramento della risoluzione dei problemi di registrazione