quarta-feira, setembro 03, 2008

Relatórios do VSTS desatualizados

Recentemente, recebi um e-mail com uma dúvida sobre o Team System e acho interessante compartilhá-la aqui no blog, pois apesar da resolução ser relativamente simples, esse problema pode te fazer perder algum tempo se você não está acostumado a trabalhar com o Team System.

O nosso amigo citava no e-mail que apesar deles trabalharem diariamente no Team System, atualizando código, work items, etc. Os relatórios estavam “parados no tempo” e ele me enviou uma imagem apresentando o relatório do qual estava falando. Veja que na imagem abaixo, não há informações sobre os últimos 3 dias.



Pois bem, um fato que é importante esclarecer é que o Team System não acessa os bancos relacionais onde as informações estão armazenadas para montar os relatórios. Ao invés disso, os dados dos relatórios são inseridos em um banco de dados do SQL Analysis Services (TfsWarehouse) e então em um cubo OLAP.

Como esse processo de cópia e transformação das informações para deixá-las mais simples de serem consultadas pode levar algum tempo, esse processo é agendado para ser executado a cada uma hora e existe um serviço do Windows que inicia, não só esse processo, mas como de outras tarefas agendadas do Team Foundation Server, o serviço é o Team Foundation Server Task Scheduler (TfsServerScheduler).

Os dados do relatório não estavam sendo atualizados, pois esse serviço estava parado por alguma razão e com isso, os dados não eram transferidos para o banco onde os relatórios buscavam as informações. Bastou iniciar o serviço para o problema ser resolvido.

Há ainda uma forma de forçar o processamento do warehouse sem depender do serviço do Windows. Isso pode ser feito acessando o web service http://localhost:8080/Warehouse/v1.0/WarehouseController.asmx no seu browser do Team Foundation Server, em seguida selecionando o método Run e clicando em Invoke.

Depois disso, chame o método GetWarehouseStatus no mesmo web service e você receberá uma resposta em XML que poderá ser Idle ou ProcessingOlap. Fique chamando esse método até o resultado ser Idle que significa que o processamento foi concluído e que todos os dados estarão atualizados em seus relatórios.

Enjoy your Team System

André Dias

Um comentário:

Ricardo Serradas disse...

Oi André,

Valeu por esse esclarecimento. O problema já não existe mais. TFS rodando 100% denovo!

TS Rocks :-)

Abração