Compartir a través de


Seguimiento (Master Data Services)

Se aplica a: SQL Server: solo Windows Azure SQL Managed Instance

Una vez que haya instalado Master Data Services (MDS), puede encontrar la característica de registro de seguimiento útil para el diagnóstico de errores, las solicitudes de soporte técnico y la supervisión del uso y el rendimiento de las aplicaciones. En este artículo se describen los pasos para activar y configurar el registro de seguimiento. En concreto, en este artículo se describe el seguimiento en un archivo de registro de texto. En este artículo también se describe el procedimiento para crear un archivo de registro que pueda ayudar a solucionar errores que pueden producirse al crear una base de datos MDS.

Fondo

Master Data Services consta de una aplicación web de ASP.NET (Master Data Manager) y un servicio WCF; ambos se hospedan en IIS y en una base de datos de SQL Server. Las solicitudes de Master Data Manager y las llamadas externas al punto de conexión de la API de servicios web se controlan mediante una capa de servicio común. El nivel de servicio puede registrar cada solicitud o respuesta de operación, eventos importantes y errores.

Como administrador con acceso a archivos en el servidor web IIS, puede habilitar el registro modificando el archivo Web.config de MDS.

De forma predeterminada, el archivo Web.config se encuentra en una de las siguientes carpetas de aplicaciones web:

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

  • SQL Server 2012 y versiones posteriores: program_files\Microsoft SQL Server\<nnn>\Master Data Services\WebApplication

Los números de la ruta de acceso nnn corresponden a la versión de SQL Server que se va a instalar. En la tabla siguiente se identifican las versiones de las rutas de acceso.

Versión nnn
SQL Server 2019 150
SQL Server 2017 140
SQL Server 2016 130
SQL Server 2014 120
SQL Server 2012 110

Precaución

Al actualizar Web.config, el dominio de la aplicación MDS en IIS se reciclará. Las sesiones de usuario existentes perderán información almacenada en caché y los usuarios pueden experimentar errores de sesión o cargas de página lentas. Realice cambios en las horas fuera del pico, si es posible.

Registro de seguimiento de la aplicación web de MDS

SQL Server 2016 y versiones posteriores

El archivo Web.config contiene una sección de seguimiento, como se muestra a continuación. Esta sección se presenta en 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 es el comportamiento de seguimiento predeterminado.

  • El seguimiento está habilitado para los mensajes Warning y ActivityTracing.

    Para más información, consulte SourceLevels (Enumeración).

  • Los registros se guardan en la carpeta Registros en la carpeta WebApplication. La ubicación predeterminada es C:\Archivos de programa\Microsoft SQL Server\nnn\Master Data Services\WebApplication\Logs.

  • El archivo se crea cada día o cada 10 MB.

  • Cuando el tamaño del directorio llega a 200 MB, se elimina el registro más antiguo.

  • El formato de registro es CSV. En la tabla siguiente se describe el formato de registro.

    Elemento Descripción
    Time Cuando se produce la entrada de seguimiento.
    CorrelationID Se asigna un identificador de correlación para cada solicitud. Todos los seguimientos desencadenados por esta solicitud compartirán el mismo identificador de correlación.
    Cuando se produce un error en la interfaz de usuario, aparece el identificador de correlación en el mensaje de error.
    Operación Nombre de la operación de solicitud. Si la solicitud es una solicitud de interfaz de usuario web, el nombre de la operación es la dirección URL. Si la solicitud es una solicitud de API, el nombre de la operación es el nombre del servicio.
    Nivel Nivel de esta entrada de seguimiento.
    Mensaje Cuerpo del mensaje de seguimiento.

SQL Server 2014 y versiones anteriores

Sección Diagnósticos del archivo Web.config instalado originalmente

En el fragmento de código de archivo siguiente se muestra la sección de diagnóstico del archivo Web.config instalado originalmente.

Nota:

La propiedad switchValue se establece como Off. Además, las líneas de ejemplo se comentan. Estas líneas son ejemplos para agregar agentes de escucha de seguimiento de varios 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>

Activación del seguimiento de archivos de registro

Para habilitar el registro, cambie switchValue a All u otro valor válido como se describe a continuación en la tabla 1. Para habilitar la salida en un archivo de registro, quite la marca de comentario de la línea LogFileListener como se muestra en el siguiente fragmento de código de archivo:

<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> 
Tabla 1: Configuración de SwitchValue para el registro
Configuración ¿Qué se registra?
Desactivado nada
Error solo errores
Advertencia errores y advertencias
Información errores, advertencias y mensajes informativos.
Detallado "Información" y otra información de seguimiento de depuración, incluidas las solicitudes y respuestas de API en formato XML
ActivityTracing solo inicio y detención de eventos
All "Detallado" y "ActivityTracing"
Ruta de acceso y nombre de archivo

El valor initializeData es el nombre del archivo de registro. Puede modificarse con otro nombre o incluir la ruta deseada. Si no se especifica la ruta de acceso, el archivo tendrá como valor predeterminado la ruta de acceso del directorio de la aplicación web (donde reside Web.config).

Importante

La cuenta de servicio del grupo de aplicaciones MDS debe tener acceso de escritura a la ubicación del archivo de registro.

Nivel de detalle de registro

En la tabla 2 siguiente se describen las categorías de eventos de seguimiento que se pueden registrar u ordenar con los eventos más importantes o críticos en la parte superior. En la tabla 1 anterior se muestra la configuración válida para el registro switchValue. Esta configuración se puede ajustar para generar la cantidad adecuada de detalles de registro para adaptarse a la situación.

Tabla 2: Tipos de eventos de registro de MDS
Tipo de evento Descripción
Crítico un error irrecuperable o bloqueo de la aplicación
Error un error recuperable
Advertencia un problema no crítico
Información un mensaje informativo
Detallado un mensaje de seguimiento de depuración
Iniciar inicio de una operación lógica
Detención detención de una operación lógica

Recomendaciones de configuración del registro

  • Para la operación normal, use la configuración Off para evitar el registro por completo o use la configuración Erroro Warning que mantendrá el registro pequeño mientras alerta a los administradores a los problemas.
  • Use la configuración All para situaciones de soporte técnico o solución de problemas.
  • Se usa ActivityTracing para la medición de rendimiento o la supervisión del uso.
  • Use Information solo si está preparado para comprobar y limpiar registros periódicamente. Los registros podrían ser largos con esta configuración. Esta configuración es útil para realizar el seguimiento de los patrones de uso y uso.
  • No use Verbose ni All en condiciones de funcionamiento normales, ya que el volumen de datos registrados afectará negativamente al rendimiento.

Pasos para crear un archivo de registro para el soporte técnico del producto

En situaciones en las que se produce un error inesperado y se requieren más diagnósticos, resulta útil crear un archivo de registro que haga un seguimiento de los eventos que conducen al problema junto con las solicitudes y respuestas del servicio.

Para generar un archivo de registro conciso y útil, siga estos pasos:

Precaución

Al actualizar Web.config, el dominio de la aplicación MDS en IIS se reciclará.

  1. Si es posible, detenga el grupo de aplicaciones de MDS en el Administrador de IIS.

    Advertencia

    Haga esto solo si la aplicación se puede quitar de línea.

  2. Si es posible, mueva o elimine el archivo de registro actual (si ya existe uno).

  3. Abra el archivo Web.config utilizando un editor de texto.

    Nota:

    De forma predeterminada, el archivo Web.config se encuentra en una de las siguientes carpetas de aplicaciones 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. Busque la sección system.diagnostics.

  5. Cambie de switchValue a All o ActivityTracing, y quite la marca de comentario de la línea del archivo de registro, como se muestra en la sección Activar seguimiento de archivos de registro de este artículo.

    1. Se usa switchValue="All" para el diagnóstico de errores.
    2. Se usa switchValue="ActivityTracing" para el diagnóstico del rendimiento.
    3. El nombre del archivo MdsTrace.log se puede prefijar con una ruta de acceso si lo desea.
  6. Si el grupo de aplicaciones se detuvo anteriormente, inicie el grupo de aplicaciones MDS en IIS. O bien, espere a que el archivo de registro aparezca después de algún tiempo y la actividad de la aplicación web. La aplicación web volverá a cargar periódicamente los valores de configuración del archivo (debe estar en cuestión de minutos).

  7. Reproduzca el problema y realice las mismas acciones o solicitudes que llevaron al error.

  8. Si puede detener el grupo de aplicaciones:

    1. Detenga el grupo de aplicaciones.
    2. Recupere el archivo de registro (es posible que tenga que esperar a que finalicen los procesos; podría haber un retraso después de detener el grupo de aplicaciones).

    O bien, abra el archivo de registro mediante un editor que no bloquee el archivo (como notepad.exe) y copie los mensajes de seguimiento pertinentes.

  9. Abra el archivo Web.config mediante un editor de texto y vuelva a cambiar switchValue a Off o al valor anterior.

  10. Inicie el grupo de aplicaciones si se detiene.

    Control de errores: todas las operaciones de servicio devuelven una matriz o colección de errores dentro del objeto OperationResult de un mensaje de respuesta. Cuando se produce un error, la matriz de errores también se serializa en XML y se escribe en el archivo de registro de la aplicación web para determinadas configuraciones switchValue, como se ha descrito anteriormente.

Ejemplo de un error de respuesta de API que se ha escrito en el archivo de registro:

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 se muestra en el ejemplo anterior, cada error incluye las siguientes propiedades de datos:

Propiedad Descripción
Código Número de error único que identifica el tipo de error.
Descripción Texto del mensaje de error localizado
Context.FullyQualifiedName Nombre completo del objeto implicado en el error. Algunos nombres solo son únicos dentro de su contexto. Una entidad se calificaría con un prefijo de nombre de modelo, como ModelName : EntityName
Context.Type El tipo de objeto implicado en el error
Context.Identifier Identificador del objeto implicado en el error
Context.Identifier.Id GUID único del objeto, si se especifica o está disponible.
Context.Identifier.Name Nombre del objeto, si se especifica o está disponible.
Context.Identifier.InternalId En desuso: no usar

Problemas de creación de bases de datos MDS de seguimiento

Puede usar el procedimiento siguiente para crear un archivo de registro que pueda ayudar a solucionar errores que pueden producirse al crear una base de datos MDS:

  1. Abra el archivo MDSConfigTool.exe.config en la ruta de acceso C:\Archivos de programa\Microsoft SQL Server\Master Data Services\Configuration mediante notepad.exe.

  2. Quite la marca de comentario de la siguiente línea en el archivo quitando los caracteres de sufijo en esa línea:

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

  3. Asegúrese de que switchValue se establezca en All.

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

  4. Inténtelo de nuevo para crear la base de datos. A continuación, abra el archivo MdsConfigManagerTrace.log que se guarda en C:\Archivos de programa\Microsoft SQL Server\Master Data Services\Configuration y revise la misma información sobre el error.

Recursos externos

Solución de problemas de mejora del registro