Поделиться через


Трассировка (Master Data Services)

Область применения: SQL Server — Только Управляемый экземпляр SQL Azure Windows

После установки служб Master Data Services (MDS) можно найти функцию ведения журнала трассировки, полезную для ошибок диагностика, запросов на поддержку и мониторинга использования приложений и производительности. В этой статье рассматриваются действия по включению и настройке ведения журнала трассировки. В частности, в этой статье рассматривается трассировка файла текстового журнала. В этой статье также описывается процедура создания файла журнала, который может помочь устранить неполадки, которые могут возникнуть при создании базы данных MDS.

Общие сведения

Службы Master Data Services состоят из веб-приложения ASP.NET (master Data Manager) и службы WCF; оба размещаются в службах IIS и базе данных SQL Server. Запросы Master Data Manager и внешние вызовы к конечной точке API веб-служб обрабатываются общим уровнем служб. Уровень служб может записывать каждый запрос или ответ операции, важные события и ошибки.

Администратор с доступом к файлам на веб-сервере IIS позволяет включить ведение журнала, изменив файл конфигурации MDS Web.config .

По умолчанию файл конфигурации Web.config находится в одной из следующих папок веб-приложения:

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

  • SQL Server 2012 и более поздних версий: program_files\Microsoft SQL Server\<nnn>\Master Data Services\WebApplication

Числа nnn в пути соответствуют установленной версии SQL Server. В следующей таблице указаны версии путей:

Версия nnn
SQL Server 2019 150
SQL Server 2017 140
SQL Server 2016 130
SQL Server 2014 120
SQL Server 2012 110

Внимание

Обновление Web.config приведет к перезапуску домена приложения MDS в IIS. Существующие сеансы пользователей потеряют кэшированные сведения, и пользователи могут столкнуться с ошибками сеансов или медленными загрузками страниц. Если это возможно, изменения выполняются в режиме внепиковой нагрузки.

Ведение журнала трассировки для веб-приложения MDS

SQL Server 2016 и более поздних версий

Файл web.config содержит раздел трассировки, как показано ниже. Этот раздел представлен в 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>

Ниже приведено поведение трассировки по умолчанию:

  • Трассировка включена для Warning и ActivityTracing сообщений.

    Дополнительные сведения см. в разделе SourceLevels — перечисление.

  • Журналы сохраняются в папке Logs в папке WebApplication . Расположение по умолчанию — C:\Program Files\Microsoft SQL Server\nnn\Master Data Services\WebApplication\Logs.

  • Файл создается для каждого дня или каждых 10 МБ данных.

  • Когда размер каталога достигает 200 МБ, удаляется самый старый журнал.

  • В журнале используется формат CSV. В следующей таблице описывается формат журнала:

    Элемент Description
    Time При возникновении записи трассировки
    CorrelationID Каждому запросу присваивается один идентификатор корреляции. Все трассировки, активированные этим запросом, будут совместно использовать один и тот же идентификатор корреляции.
    При возникновении ошибки в пользовательском интерфейсе идентификатор корреляции отображается в сообщении об ошибке.
    Операция Имя запрошенной операции. Если это запрос к пользовательскому веб-интерфейсу, то именем операции является URL-адрес. Если запрос является запросом API, имя операции — это имя службы.
    Уровень Уровень этой записи трассировки
    Сообщение Текст трассировки.

SQL Server 2014 и более ранних версий

Раздел диагностики из исходно установленного файла Web.config

В следующем фрагменте файла показан раздел диагностика из исходно установленного файла Web.config.

Примечание.

Для switchValue задано значение Off. Кроме того, примеры строк закомментированы. Эти строки являются примерами для добавления прослушивателей трассировки различных типов.

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

Включение трассировки файлов журнала

Чтобы включить ведение журнала, измените switchValue All или другое допустимое значение, как описано ниже в таблице 1. Чтобы включить выходные данные в файл журнала, раскомментируйте LogFileListener строку, как показано в следующем фрагменте файла:

<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> 
Таблица 1. Параметры SwitchValue для ведения журнала
Параметр Какие данные регистрируются в журнале
Выключено nothing
Ошибка только ошибки
Предупреждение ошибки и предупреждения
Информация ошибки, предупреждения, информационные сообщения
Подробный "Сведения" и другие сведения трассировки отладки, включая запросы и ответы API в формате XML
ActivityTracing Только события запуска и остановки
Все "Подробные" и "ActivityTracing"
Имя файла и путь

Значением initializeData является имя файла журнала. Это может быть изменено на другое имя или включить нужный путь. Если путь не указан, файл по умолчанию будет находиться в пути каталога веб-приложения (где находится web.config ).

Внимание

Учетная запись службы для пула приложений MDS должна иметь доступ на запись в расположение файла журнала.

Уровень детализации ведения журнала

В таблице 2 ниже описаны категории событий трассировки, которые могут быть зарегистрированы или отсортированы с наиболее важными или критически важными событиями в верхней части. В таблице 1 выше перечислены допустимые параметры для ведения журнала switchValue. Этот параметр можно изменить, чтобы получить правильный объем сведений о ведении журнала в соответствии с ситуацией.

Таблица 2. Типы событий ведения журнала MDS
Тип события Description
Критически важно Неустранимая ошибка или сбой приложения
Ошибка Ошибка, допускаемая для восстановления
Предупреждение некритическая проблема
Информация информационное сообщение
Подробный сообщение трассировки отладки
Начать запуск логической операции
Остановить остановка логической операции

Рекомендации по настройке журнала

  • Для нормальной Off работы используйте параметр, чтобы избежать ведения журнала полностью или использовать Warning Error параметры, которые будут сохранять журнал небольшим во время оповещения администраторов проблем.
  • All Используйте параметр для ситуаций поддержки и устранения неполадок.
  • Используется ActivityTracing для измерения производительности или мониторинга использования.
  • Используйте Information только в том случае, если они готовы периодически проверять и очищать журналы. Журналы могут получить длину с помощью этого параметра. Этот параметр полезен для отслеживания шаблонов использования и использования.
  • Не используйте Verbose или All не в обычных условиях работы, так как объем зарегистрированных данных негативно влияет на производительность.

Действия по созданию файла журнала для поддержки продуктов

В ситуациях, когда возникает непредвиденная ошибка, а также требуются дополнительные диагностика, полезно создать файл журнала, который отслеживает события, которые приводят к проблеме вместе с запросами и ответами службы.

Чтобы создать краткий и полезный файл журнала, выполните следующие действия.

Внимание

Обновление Web.config приведет к перезапуску домена приложения MDS в IIS.

  1. По возможности остановите пул приложений MDS в диспетчере IIS.

    Предупреждение

    Это можно сделать только в том случае, если приложение может быть снято с линии.

  2. Если это возможно, переместите или удалите текущий файл журнала (если он уже существует).

  3. Откройте файл web.config с помощью текстового редактора.

    Примечание.

    По умолчанию файл конфигурации Web.config находится в одной из следующих папок веб-приложения:

    • 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. Найдите раздел system.diagnostics.

  5. Измените switchValue All ActivityTracing или раскомментируйте строку файла журнала, как показано в разделе "Включение трассировки файлов журнала" этой статьи .

    1. Используется switchValue="All" для диагностика ошибок.
    2. Используется switchValue="ActivityTracing" для диагностика производительности.
    3. Имя файла MdsTrace.log может быть префиксировано путем при необходимости.
  6. Если пул приложений ранее остановлен, запустите пул приложений MDS в IIS. Кроме того, дождитесь появления файла журнала через некоторое время и действия веб-приложения. Веб-приложение периодически перезагрузит параметры конфигурации из файла (должно находиться в течение нескольких минут).

  7. Воспроизвести проблему и выполнить те же действия или запросы, которые привели к ошибке.

  8. Если вы можете остановить пул приложений:

    1. Остановите пул приложений.
    2. Получите файл журнала (может потребоваться ждать завершения процессов; после остановки пула приложений может возникнуть задержка).

    Или же откройте файл журнала с помощью редактора, который не блокирует файл (например , notepad.exe) и копирует соответствующие сообщения трассировки.

  9. Откройте файл конфигурации Web.config с помощью текстового редактора и switchValue вернитесь на Off предыдущее или предыдущее значение.

  10. Запустите пул приложений при остановке.

    Обработка ошибок: все операции службы возвращают массив или коллекцию ошибок в OperationResult объекте сообщения ответа. При возникновении ошибки массив ошибок также сериализуется в XML и записывается в файл журнала веб-приложения для определенных switchValue параметров, как описано выше.

Пример ошибки ответа API, записанной в файл журнала:

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 

Как показано в приведенном выше примере, каждая ошибка включает следующие свойства данных:

Свойство Description
Код Уникальный номер ошибки, определяющий тип ошибки
Description Локализованный текст сообщения об ошибке
Context.FullyQualifiedName Полное имя объекта, связанного с ошибкой. Некоторые имена уникальны только в их контексте. Сущность будет квалифицирована с префиксом имени модели, например ModelName: EntityName
Context.Type Тип объекта, связанного с ошибкой
Context.Identifier Идентификатор объекта, связанного с ошибкой
Context.Identifier.Id Уникальный GUID объекта, если он указан или доступен
Context.Identifier.Name Имя объекта, если указано или доступно
Context.Identifier.InternalId Не рекомендуется — не используйте

Проблемы при создании базы данных MDS

Чтобы создать файл журнала, который может помочь устранить ошибки, которые могут возникнуть при создании базы данных MDS, можно использовать следующую процедуру:

  1. Откройте файл MDSConfigTool.exe.config в пути C:\Program Files\Microsoft SQL Server\Master Data Services\Configuration с помощью notepad.exe.

  2. Раскомментируйте следующую строку в файле, удалив символы суффикса в этой строке:

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

  3. Убедитесь, для что для параметра switchValue задано значение All.

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

  4. Повторите попытку создания базы данных. Затем откройте файл MdsConfigManagerTrace.log , сохраненный в C:\Program Files\Microsoft SQL Server\Master Data Services\Configuration , и просмотрите те же сведения о сбое.

Внешние ресурсы

Устранение неполадок с улучшением ведения журнала