Partilhar via


Rastreamento (Master Data Services)

Aplica-se a:SQL Server no Windows Azure SQL Managed Instance

Importante

Os Serviços de Dados Mestres (MDS) foram removidos no SQL Server 2025 (17.x). Continuamos a oferecer suporte ao MDS no SQL Server 2022 (16.x) e em versões anteriores.

Depois de instalar o Master Data Services (MDS), você pode achar o recurso de log de rastreamento útil para diagnóstico de erros, solicitações de suporte e monitoramento do uso e desempenho do aplicativo. Este artigo aborda as etapas para ativar e configurar o log de rastreamento. Especificamente, este artigo aborda o rastreamento para um arquivo de log de texto. Este artigo também discute o procedimento para criar um arquivo de log que pode ajudar a solucionar falhas que podem ocorrer ao criar um banco de dados MDS.

Contexto geral

O Master Data Services consiste em um aplicativo Web ASP.NET (Master Data Manager) e um serviço WCF; ambos são hospedados no IIS e em um banco de dados do SQL Server. As solicitações do Master Data Manager e as chamadas externas para o ponto de extremidade da API de serviços Web são tratadas por uma camada de serviço comum. A camada de serviço pode registrar cada solicitação/resposta de operação, eventos importantes e erros.

Como administrador com acesso a ficheiros no servidor Web IIS, podes habilitar o registo em log modificando o ficheiro de MDS Web.config.

Por padrão, o arquivo Web.config está em uma das seguintes pastas de aplicativo Web:

  • SQL Server 2008 R2: program_files\Microsoft SQL Server\Master Data Services\WebApplication

  • SQL Server 2012 e versões posteriores: program_files\Microsoft SQL Server\<nnn>\Master Data Services\WebApplication

Os números nnn no caminho correspondem à versão do SQL Server que está sendo instalada. A tabela a seguir identifica versões para os caminhos:

Versão nnn
SQL Server 2019 150
SQL Server 2017 140
SQL Server 2016 130
SQL Server 2014 cento e vinte
SQL Server 2012 110

Atenção

A atualização Web.config fará com que o domínio do aplicativo MDS no IIS seja reciclado. As sessões de usuário existentes perderão informações armazenadas em cache e os usuários poderão enfrentar erros de sessão ou carregamentos de página lentos. Realize alterações fora dos horários de pico, se possível.

Rastreamento de registos no aplicativo web MDS

SQL Server 2016 e versões posteriores

O arquivo Web.config contém uma seção de rastreamento, como mostrado abaixo. Esta seção é introduzida no 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>

Este é o comportamento de rastreamento padrão:

  • O rastreamento está habilitado para Warning e ActivityTracing mensagens.

    Para obter mais informações, consulte SourceLevels Enumeration.

  • Os logs são salvos na pasta Logs , na pasta WebApplication . O local padrão é C:\Arquivos de Programas\Microsoft SQL Server\nnn\Master Data Services\WebApplication\Logs.

  • O ficheiro é criado para cada dia ou a cada 10 MB.

  • Quando o tamanho do diretório atinge 200 MB, o log mais antigo é excluído.

  • O formato de log é CSV. A tabela a seguir descreve o formato de log:

    Elemento Descrição
    Tempo / Hora Quando se regista uma entrada de rastreio
    ID de Correlação Um ID de correlação é atribuído para cada solicitação. Todos os rastreamentos acionados por essa solicitação compartilharão a mesma ID de correlação.
    Quando ocorre um erro na interface do usuário, a ID de correlação aparece na mensagem de erro
    Funcionamento Solicite o nome da operação. Se a solicitação for uma solicitação de interface do usuário da Web, o nome da operação será a url. Se a solicitação for uma solicitação de API, o nome da operação será o nome do serviço
    Nível Nível desta entrada de rastreio
    Mensagem Corpo da mensagem do rastreio

SQL Server 2014 e versões anteriores

Seção de diagnóstico do arquivo de Web.config instalado originalmente

O trecho de arquivo a seguir mostra a seção de diagnóstico do arquivo Web.config instalado originalmente.

Observação

O switchValue está definido como Off. Além disso, as linhas de exemplo estão comentadas. Essas linhas são exemplos para adicionar escutadores de rastreamento de vários tipos.

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

Ativando o rastreamento de arquivos de log

Para habilitar o registro em log, altere switchValue para All ou outro valor válido, conforme descrito abaixo na Tabela 1. Para habilitar a saída para um ficheiro de log, descomente a linha LogFileListener como mostrado no seguinte trecho de ficheiro.

<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> 
Tabela 1 - Configurações de SwitchValue para registro em log
Configurações O que é registado
Desativado nada
Erro apenas erros
Advertência erros e avisos
Informação erros, avisos, mensagens informativas
Verbose "Informação" e outros registos de depuração, incluindo pedidos de API e respostas em formato XML
Rastreamento de atividades Iniciar e parar apenas eventos
Todos "Verbose" e "ActivityTracing"
Nome e caminho do arquivo

O initializeData valor é o nome do arquivo de log. Isso pode ser modificado para outro nome ou para incluir um caminho desejado. Se o caminho não for especificado, o arquivo assumirá como padrão o caminho do diretório do aplicativo Web (onde Web.config reside).

Importante

A conta de serviço para o pool de aplicativos MDS deve ter acesso de gravação ao local do arquivo de log.

Nível de detalhe do registo

A Tabela 2 abaixo descreve as categorias de eventos de rastreamento que podem ser registrados ou classificados com os eventos mais importantes/críticos na parte superior. A Tabela 1 acima lista as definições válidas para o logging switchValue. Essa configuração pode ser ajustada para produzir a quantidade certa de detalhes de registro para se adequar à situação.

Tabela 2 - Tipos de eventos de log do MDS
Tipo de Evento Descrição
Crítico um erro fatal ou falha do aplicativo
Erro um erro recuperável
Advertência um problema não crítico
Informação uma mensagem informativa
Verbose Uma mensagem de rastreamento de depuração
Início início de uma operação lógica
Parar interrupção de uma operação lógica

Recomendações para configuração de log

  • Para uma operação normal, use a configuração Off para evitar completamente o registo ou use a configuração Error ou Warning, que manterá o registo pequeno enquanto alerta os administradores para problemas.
  • Use a All configuração para situações de suporte/solução de problemas.
  • Use ActivityTracing para medição de desempenho ou monitoramento de uso.
  • Utilize Information apenas se estiver preparado para verificar e limpar periodicamente os registos. Os logs podem ficar longos com essa configuração. Essa configuração é útil para acompanhar o uso e os padrões de uso.
  • Não use Verbose ou All em condições normais de operação, pois o volume de dados registrados afetará negativamente o desempenho.

Etapas para criar um arquivo de log para suporte ao produto

Em situações em que ocorre um erro inesperado e são necessários diagnósticos adicionais, é útil criar um arquivo de log que rastreie os eventos que levaram ao problema, juntamente com as solicitações de serviço e respostas.

Para produzir um ficheiro de registo conciso e útil, siga estes passos:

Atenção

A atualização Web.config fará com que o domínio do aplicativo MDS no IIS seja reciclado.

  1. Se possível, pare o pool de aplicativos MDS no Gerenciador do IIS.

    Advertência

    Faça isso apenas se o aplicativo puder ser retirado do ar.

  2. Se possível, mova ou exclua o arquivo de log atual (se já existir).

  3. Abra o arquivo Web.config usando um editor de texto.

    Observação

    Por padrão, o arquivo Web.config está em uma das seguintes pastas de aplicativo 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
  4. Encontre a system.diagnostics secção.

  5. Altere switchValue para All ou ActivityTracing e descomente a linha do arquivo de log, conforme mostrado na seção Ativando o rastreamento de arquivos de log deste artigo.

    1. Use switchValue="All" para diagnósticos de erros.
    2. Use switchValue="ActivityTracing" para diagnósticos de desempenho.
    3. O nome do arquivo MdsTrace.log pode ser prefixado com um caminho, se desejado.
  6. Se o pool de aplicativos tiver sido interrompido anteriormente, inicie o pool de aplicativos MDS no IIS. Ou então, aguarde até que o arquivo de log apareça depois de algum tempo e atividade do aplicativo Web. O aplicativo Web recarregará periodicamente as definições de configuração do arquivo (deve ser em minutos).

  7. Reproduza o problema e execute as mesmas ações ou solicitações que levaram ao erro.

  8. Se você conseguir parar o pool de aplicativos:

    1. Pare o pool de aplicativos.
    2. Recupere o arquivo de log (talvez seja necessário aguardar a conclusão dos processos; pode haver um atraso após a interrupção do pool de aplicativos).

    Ou então, abra o arquivo de log usando um editor que não bloqueie o arquivo (como notepad.exe) e copie as mensagens de rastreamento relevantes.

  9. Abra o arquivo Web.config usando um editor de texto e altere switchValue novamente para Off ou o valor anterior.

  10. Inicie o pool de aplicativos caso esteja parado.

    Tratamento de erros: Todas as operações de serviço retornam uma matriz ou coleção de erros dentro do OperationResult objeto de uma mensagem de resposta. Quando ocorre um erro, a matriz de erro também é serializada em XML e gravada no arquivo de log do aplicativo Web para determinadas switchValue configurações, conforme descrito acima.

Um exemplo de um erro de resposta da API que foi gravado no arquivo de 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 

Como mostrado no exemplo acima, cada erro inclui as seguintes propriedades de dados:

Propriedade Descrição
Código O número de erro exclusivo que identifica o tipo de erro
Descrição Texto da mensagem de erro localizada
Context.FullyQualifiedName O nome totalmente qualificado do objeto envolvido no erro. Alguns nomes são apenas únicos dentro do seu contexto. Uma entidade seria qualificada com um prefixo de nome de modelo, como ModelName : EntityName
Context.Type O tipo de objeto envolvido no erro
Contexto.Identificador O identificador do objeto envolvido no erro
Context.Identifier.Id O GUID exclusivo do objeto, se especificado ou disponível
Context.Identifier.Name O nome do objeto, se especificado ou disponível
Context.Identifier.InternalId Preterido – não use

Rastreando problemas de criação de banco de dados MDS

Você pode usar o procedimento a seguir para criar um arquivo de log que pode ajudar a solucionar falhas que podem ocorrer ao criar um banco de dados MDS:

  1. Abra o arquivo MDSConfigTool.exe.config no caminho C:\Arquivos de Programas\Microsoft SQL Server\Master Data Services\Configuration usando notepad.exe.

  2. Descomente a seguinte linha no arquivo removendo os caracteres de sufixo nessa linha:

    <add name="LogFileListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="MdsConfigManagerTrace.log" traceOutputOptions="DateTime"/>

  3. Certifique-se de que switchValue está definido como All (Ativado).

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

  4. Tente novamente criar o banco de dados. Em seguida, abra o MdsConfigManagerTrace.log de arquivo salvo em C:\Arquivos de Programas\Microsoft SQL Server\Master Data Services\Configuration e revise o mesmo para obter outras informações sobre a falha.

Recursos externos

Solução de problemas de melhoria do registro em log