Rastreando componentes do Sync Framework
O Sync Framework permite rastrear a execução de vários componentes, que é útil durante a depuração de aplicativos. Para a maioria dos componentes do Sync Framework, o rastreamento é executado no nível de código nativo usando a infraestrutura ETW (Rastreamento de Eventos do Windows). Para obter mais informações sobre a infraestrutura de ETW, consulte Event Tracing (em inglês).
Mesmo que ele seja feito em relação à versão gerenciada de uma API, ainda assim você usará o ETW porque a API gerenciada é um wrapper fino sobre a API nativa. Os provedores de banco de dados do Sync Framework fornecem rastreamento gerenciado com base na implementação de .NET Framework. Para obter mais informações, consulte Como rastrear o processo de sincronização.
Baixando e usando as ferramentas de rastreamento
As ferramentas de rastreamento que o ETW exige são incluídas nas Ferramentas de Suporte do Windows, que estão disponíveis para cada versão do Windows. Por exemplo, as ferramentas para o Windows XP SP2 estão disponíveis nesta página do Centro de Download da Microsoft. As ferramentas relevantes para o rastreamento do Sync Framework são descritas na tabela a seguir:
Ferramenta de rastreamento | Descrição | Referência de sintaxe |
---|---|---|
Tracelog.exe |
Inicia, interrompe ou habilita o registro de rastreamento. |
|
Tracefmt.exe |
Formata e exibe mensagens de rastreamento de um arquivo de log de rastreamento de evento (.etl) ou uma sessão de rastreamento em tempo real. |
Para exibir a saída de um rastreamento, você inicia um log de rastreamento, habilita o rastreamento e formata o rastreamento para exibição.
Para iniciar um agente de rastreamento
Para iniciar um agente de rastreamento, especifique um nome de agente, um nome de arquivo de rastreamento e vários parâmetros que controlam como o arquivo será gravado: tracelog.exe -start <LoggerName> <LoggerParameters> -f <PathToEtlFile>
. Por exemplo, o comando a seguir pode ser usado:
tracelog.exe -start "Sync" -paged -b 32 -max 100 -cir 20 -ls -f %TEMP%\SyncFramework.etl
Para habilitar o rastreamento
Para habilitar o rastreamento, especifique o GUID do componente a ser rastreado, um bitmask de sinalizadores que indicam quais subcomponente rastrear e um inteiro que representa o nível de rastreamento: tracelog.exe -``enable <LoggerName> -guid <ComponentTracingId> -flags <Flags> -level <Level>
. Neste exemplo, habilitamos o rastreamento do componente principal do Sync Framework e todos os seus subcomponentes, com um nível de rastreamento igual a 4 (mensagens informativas que incluem casos sem erro):
tracelog.exe -enable "Sync" -guid #5978339c-8ab2-467e-bb85-8832659d5ed0 -flags 0xffff -level 4
Para obter uma lista completa das opções do Sync Framework, consulte Referência de rastreamento do Sync Framework neste tópico.
Para formatar e exibir o arquivo de rastreamento
Para exibir um rastreamento, libere o agente e formate o arquivo de rastreamento binário usando os arquivos .tmf que estão disponíveis para o Sync Framework no Centro de Download da Microsoft. Use comandos semelhantes aos que se seguem para exibir o rastreamento a partir do agente de "Sincronização":
Para liberar o agente, execute
tracelog.exe -flush "Sync"
.Copie os arquivos .tmf do caminho de instalação do Sync Framework (Arquivos de Programas\Microsoft SDKs\Microsoft Sync Framework\v2.0) para um diretório de trabalho, como
%TEMP%\TMF
.Para formatar o arquivo, execute
tracefmt.exe %TEMP%\SyncFramework.etl -p %TEMP%\TMF -o %TEMP%\SyncFrameworkTrace.txt
.Para exibir o arquivo, abra
%TEMP%\SyncFrameworkTrace.txt
.
Para interromper o rastreamento
Para interromper o agente de "Sincronização" que iniciamos anteriormente, execute tracelog.exe -stop "Sync"
.
Referência de rastreamento do Sync Framework
A tabela a seguir mostra os GUIDs que representam cada componente do Sync Framework:
Componente | ID de rastreamento do componente |
---|---|
Estrutura de núcleo e tempo de execução |
5978339c-8ab2-467e-bb85-8832659d5ed0 |
Provedores simples |
69c896b3-e183-428d-9e30-4b519b156828 |
Componentes de sincronização da Web |
0958c02f-01cb-4b28-badf-1431c83a931e |
Serviço de armazenamento de metadados |
67161b7f-60ff-4368-832e-670f2327a7e4 |
Provedor de sincronização de arquivos |
b5fac8e8-25e0-4468-926e-54cd8514f8a0 |
Rastreando sinalizadores
As tabelas a seguir mostram os sinalizadores de bitmask que podem ser transmitidos ao parâmetro -flags
do tracelog.exe para especificar quais subcomponentes devem ser rastreados:
Sinalizadores de tempo de execução e estrutura de núcleo
Nome do sinalizador de rastreamento | Bitmask | Descrição |
---|---|---|
TRACE_MSG_KNOWLEDGE |
0x0001 |
Operações de conhecimento de sincronização |
TRACE_MSG_SYNC_SERVICES |
0x0002 |
Serviços de sincronização, como serviços de sincronização de aplicativos e serviços de sincronização de provedores |
TRACE_MSG_SYNC_SESSION |
0x0004 |
Sessão de sincronização e estado da sessão de sincronização |
TRACE_MSG_CHANGE_APPLIER |
0x0008 |
O aplicador de alterações de notificação |
TRACE_MSG_CHANGE_BATCH |
0x0010 |
O lote de alterações |
TRACE_MSG_CHANGE |
0x0020 |
A alteração individual |
TRACE_MSG_FILTER |
0x0040 |
Filtragem de alterações |
TRACE_MSG_IN_MEMORY_CONFLICT_LOG |
0x0080 |
O log de conflitos na memória |
TRACE_MSG_CHANGE_APPLICATION_SERVICES |
0x0100 |
Serviços avançados de aplicação de alterações |
Sinalizadores de provedores simples
Nome do sinalizador de rastreamento | Bitmask | Descrição |
---|---|---|
TRACE_MSG_SIMPLESYNCWRAPPER |
0x0001 |
Provedores simples (nenhum subcomponente é definido) |
Sinalizadores de componentes de sincronização da Web
Nome do sinalizador de rastreamento | Bitmask | Descrição |
---|---|---|
TRACE_MSG_FEEDSYNC |
0x0001 |
Componentes de sincronização da Web (nenhum subcomponente é definido) |
Sinalizadores de serviço de armazenamento de metadados
Nome do sinalizador de rastreamento | Bitmask | Descrição |
---|---|---|
TRACE_MSG_METADATA_STORE |
0x0001 |
Serviço de armazenamento de metadados (nenhum subcomponente é definido) |
Sinalizadores do provedor de sincronização de arquivos
Nome do sinalizador de rastreamento | Bitmask | Descrição |
---|---|---|
TRACE_MSG_FSP |
0x0001 |
Provedor de sincronização de arquivos (nenhum subcomponente é definido) |
Níveis de rastreamento
A tabela a seguir mostra os níveis de rastreamento que são usados pelo Sync Framework: Um aumento no nível representa um aumento no detalhamento do registro em log, e os níveis são cumulativos. Por exemplo, um nível rastreamento quatro contém todas as informações dos níveis de um a três e informações adicionais:
Nível de rastreamento | Valor | Descrição |
---|---|---|
TRACE_LEVEL_NONE |
0 |
Sem rastreamento |
TRACE_LEVEL_CRITICAL |
1 |
Saída ou término anormal |
TRACE_LEVEL_ERROR |
2 |
Erros graves |
TRACE_LEVEL_WARNING |
3 |
Avisos que podem revelar problemas |
TRACE_LEVEL_INFORMATION |
4 |
Informações que incluem casos sem erro |
TRACE_LEVEL_METADATA_INFORMATION |
5 |
Informações sobre metadados de sincronização |
TRACE_LEVEL_FUNCTION |
6 |
Informações sobre quando cada função é inserida e retirada |